<?xml version="1.0"?>
<def format="2">
  <markup ext=".qml" reporterrors="false" aftercode="true">
    <!-- keywords in QML code to ignore -->
    <keywords>
      <keyword name="if"/>
      <keyword name="while"/>
      <keyword name="typeof"/>
      <keyword name="for"/>
    </keywords>
    <!-- code blocks are meta-code/pseudo code placed in the library
         that is used/called by the native c/c++ code -->
    <codeblocks>
      <!-- need to add all the QML function names below -->
      <block name="onClicked"/>
      <block name="onFinished"/>
      <block name="onTriggered"/>
      <block name="onRetrieveTriggered"/>
      <block name="onPressed"/>
      <block name="onTouch"/>
      <block name="onFocusedChanged"/>
      <block name="onSubmittedNewStatusChanged"/>
      <block name="onCreationCompleted"/>
      <block name="onFileSelected"/>
      <!-- code block structure in QML is:
            onClicked: {
              call(var)
            } -->
      <structure offset="3" start="{" end="}"/>
      <!-- the start block is '3' tokens after the
           name token so we skip them -->
    </codeblocks>
    <codeblocks>
      <block name="function"/>
      <!-- code block structure in QML is:
            funnction x(args): {
              call(var)
            } -->
      <structure offset="2" start="{" end="}"/>
    </codeblocks>
    <!-- Qt Properties have the format :
           Q_PROPERTY(<type> <name> READ <func> WRITE <func> NOTIFY <func>)
           the READ/WRITE/NOTIFY parts are optional -->
    <exported>
      <exporter prefix="Q_PROPERTY">
        <suffix>READ</suffix>
        <!-- catch the element before READ if present -->
        <prefix>READ</prefix>
        <prefix>WRITE</prefix>
        <prefix>NOTIFY</prefix>
      </exporter>
    </exported>
    <!-- qml files can call connect on the c++ code -->
    <imported>
      <importer>connect</importer>
    </imported>
  </markup>
  <!-- qt can call methods as strings using invokeMethod -->
  <reflection>
    <call arg="2">invokeMethod</call>
  </reflection>
  <define name="SIGNAL(X)" value="#X"/>
  <define name="SLOT(X)" value="#X"/>
  <!-- QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type = Qt::AutoConnection) const -->
  <!-- QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection) -->
  <!-- QMetaObject::Connection QObject::connect(const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type = Qt::AutoConnection) -->
  <!-- QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type = Qt::AutoConnection) -->
  <!-- QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, Functor functor) -->
  <!-- QMetaObject::Connection QObject::connect(const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type = Qt::AutoConnection) -->
  <function name="connect,QObject::connect">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="4" default="0">
      <not-uninit/>
    </arg>
    <arg nr="5" default="0">
      <not-uninit/>
    </arg>
  </function>
  <!-- bool QObject::disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method) -->
  <!-- bool QObject::disconnect(const char *signal = Q_NULLPTR, const QObject *receiver = Q_NULLPTR, const char *method = Q_NULLPTR) const -->
  <!-- bool QObject::disconnect(const QObject *receiver, const char *method = Q_NULLPTR) const -->
  <!-- bool QObject::disconnect(const QMetaObject::Connection &connection) -->
  <!-- bool QObject::disconnect(const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) -->
  <!-- TODO: function configuration should match all overloaded functions and ideally only QObject methods -->
  <function name="disconnect,QObject::disconnect">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3">
      <not-uninit/>
    </arg>
    <arg nr="4">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString QObject::tr(const char *sourceText, const char *disambiguation = Q_NULLPTR, int n = -1) //static -->
  <function name="tr,QObject::tr">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <strz/>
    </arg>
    <arg nr="2" default="0">
      <not-uninit/>
    </arg>
    <arg nr="3" default="-1">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QSettings::setValue(const QString &key, const QVariant &value) -->
  <function name="QSettings::setValue">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <strz/>
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- QVariant QSettings::value(const QString &key, const QVariant &defaultValue = QVariant()) const -->
  <function name="QSettings::value">
    <noreturn>false</noreturn>
    <returnValue type="QVariant"/>
    <use-retval/>
    <const/>
    <arg nr="1">
      <strz/>
      <not-uninit/>
      <not-null/>
    </arg>
    <arg nr="2" default="QVariant()">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString & QString::sprintf(const char * cformat, ...); -->
  <function name="QString::sprintf">
    <noreturn>false</noreturn>
    <returnValue type="QString &amp;"/>
    <leak-ignore/>
    <formatstr/>
    <arg nr="1">
      <formatstr/>
      <not-uninit/>
    </arg>
    <warn severity="style" alternatives="QString::asprintf,QString::arg,QTextStream" reason="Obsolete"/>
  </function>
  <!-- void QList::append(const T &value) -->
  <!-- void QList::append(const QList<T> &value) -->
  <!-- QStringList inherits from QList -->
  <function name="QList::append,QStringList::append">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString & QString::append(const QString &str); -->
  <!-- QString & QString::append(const QChar *str, int len); -->
  <!-- QString & QString::append(QChar ch); -->
  <!-- QString & QString::append(const QStringRef &reference); -->
  <!-- QString & QString::append(QLatin1String str); -->
  <!-- QString & QString::append(const char *str); -->
  <!-- QString & QString::append(const QByteArray &ba); -->
  <function name="QString::append">
    <noreturn>false</noreturn>
    <returnValue type="QString &amp;"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="0">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QStandardItem::appendRow(const QList<QStandardItem *> &items) -->
  <!-- void QStandardItem::appendRow(QStandardItem *item) -->
  <!-- void QStandardItem::appendRows(const QList<QStandardItem *> &items) -->
  <!-- void QStandardItemModel::appendRow(const QList<QStandardItem *> &items) -->
  <!-- void QStandardItemModel::appendRow(QStandardItem *item) -->
  <function name="QStandardItem::appendRow,QStandardItem::appendRows,QStandardItemModel::appendRow">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
  </function>
  <!-- QString QString::arg(const QString & a, int fieldWidth = 0, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(const QString & a1, const QString & a2) const -->
  <!-- QString QString::arg(const QString & a1, const QString & a2, const QString & a3) const -->
  <!-- QString QString::arg(const QString & a1, const QString & a2, const QString & a3, const QString & a4) const -->
  <!-- QString QString::arg(const QString & a1, const QString & a2, const QString & a3, const QString & a4, const QString & a5) const -->
  <!-- QString QString::arg(const QString & a1, const QString & a2, const QString & a3, const QString & a4, const QString & a5, const QString & a6) const -->
  <!-- QString QString::arg(const QString & a1, const QString & a2, const QString & a3, const QString & a4, const QString & a5, const QString & a6, const QString & a7) const -->
  <!-- QString QString::arg(const QString & a1, const QString & a2, const QString & a3, const QString & a4, const QString & a5, const QString & a6, const QString & a7, const QString & a8) const -->
  <!-- QString QString::arg(const QString & a1, const QString & a2, const QString & a3, const QString & a4, const QString & a5, const QString & a6, const QString & a7, const QString & a8, const QString & a9) const -->
  <!-- QString QString::arg(int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(uint a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(long a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(ulong a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(qlonglong a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(qulonglong a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(short a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(ushort a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(QChar a, int fieldWidth = 0, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(char a, int fieldWidth = 0, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <!-- QString QString::arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, const QChar & fillChar = QLatin1Char( ' ' )) const -->
  <function name="QString::arg">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="any">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString QString::asprintf(const char * cformat, ...); -->
  <function name="QString::asprintf">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <leak-ignore/>
    <formatstr/>
    <arg nr="1">
      <formatstr/>
      <not-uninit/>
    </arg>
  </function>
  <!-- const QChar QString::at(int position) const -->
  <function name="QList::at,QString::at,QStringList::at">
    <noreturn>false</noreturn>
    <returnValue type="const QChar"/>
    <use-retval/>
    <const/>
    <arg nr="1">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- int QString::capacity() const -->
  <function name="QString::capacity">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <use-retval/>
    <const/>
  </function>
  <!-- iterator QList::..() -->
  <function name="QList::begin,QList::end,QList::cbegin,QList::cend,QList::constBegin,QList::constEnd,QList::rbegin,QList::rend,QList::crbegin,QList::crend">
    <noreturn>false</noreturn>
    <use-retval/>
  </function>
  <!-- iterator QString::..() -->
  <function name="QString::begin,QString::end,QString::cbegin,QString::cend,QString::constBegin,QString::constEnd,QString::rbegin,QString::rend,QString::crbegin,QString::crend">
    <noreturn>false</noreturn>
    <use-retval/>
  </function>
  <!-- iterator QStringList::..() -->
  <function name="QStringList::begin,QStringList::end,QStringList::cbegin,QStringList::cend,QStringList::constBegin,QStringList::constEnd,QStringList::rbegin,QStringList::rend,QStringList::crbegin,QStringList::crend">
    <noreturn>false</noreturn>
    <use-retval/>
  </function>
  <!-- QStandardItem *QStandardItem::child(int row, int column = 0) const -->
  <function name="QStandardItem::child">
    <noreturn>false</noreturn>
    <returnValue type="QStandardItem *"/>
    <use-retval/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="0">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QString::chop() -->
  <function name="QString::chop">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QString::clear() -->
  <function name="QList::clear,QString::clear">
    <noreturn>false</noreturn>
  </function>
  <!-- int QString::compare(const QString &s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) //static -->
  <!-- int QString::compare(QLatin1String other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- int QString::compare(const QString &other, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- int QString::compare(const QString &s1, QLatin1String s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) //static -->
  <!-- int QString::compare(QLatin1String s1, const QString &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) //static -->
  <!-- int QString::compare(const QStringRef &ref, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- int QString::compare(const QString &s1, const QStringRef &s2, Qt::CaseSensitivity cs = Qt::CaseSensitive) //static -->
  <function name="QString::compare">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="0">
      <not-uninit/>
    </arg>
    <arg nr="3" default="0">
      <not-uninit/>
    </arg>
  </function>
  <!-- bool QList::contains(const T &value) const -->
  <!-- bool QList::startsWith(const T &value) const -->
  <!-- bool QList::endsWith(const T &value) const -->
  <function name="QList::contains,QList::startsWith,QList::endsWith">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="bool"/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- bool QMap::contains(const Key &key) const -->
  <function name="QMap::contains">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="bool"/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- bool QString::contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- bool QString::startsWith(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- bool QString::endsWith(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <function name="QString::contains,QString::startsWith,QString::endsWith">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="bool"/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="Qt::CaseSensitive">
      <not-uninit/>
    </arg>
  </function>
  <!-- bool QStringList::contains(const T &value) const -->
  <!-- bool QStringList::startsWith(const T &value) const -->
  <!-- bool QStringList::endsWith(const T &value) const -->
  <function name="QStringList::contains,QStringList::startsWith,QStringList::endsWith">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="bool"/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- int QList::count() const -->
  <!-- int QList::length() const -->
  <!-- int QList::size() const -->
  <!-- int QString::count() const -->
  <!-- int QString::length() const -->
  <!-- int QString::size() const -->
  <!-- int QStringList::count() const -->
  <!-- int QStringList::length() const -->
  <!-- int QStringList::size() const -->
  <function name="QList::count,QList::length,QList::size,QString::count,QString::length,QString::size,QStringList::count,QStringList::length,QStringList::size">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="signed int"/>
    <const/>
  </function>
  <!-- bool QList::empty() const -->
  <!-- bool QList::isEmpty() const -->
  <!-- bool QString::isEmpty() const -->
  <!-- bool QString::isNull() const -->
  <!-- bool QStringList::empty() const -->
  <!-- bool QStringList::isEmpty() const -->
  <function name="QList::empty,QList::isEmpty,QString::isEmpty,QString::isNull,QStringList::empty,QStringList::isEmpty">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="bool"/>
    <const/>
  </function>
  <!-- void QList::insert(int i, const T &value) -->
  <!-- iterator QList::insert(iterator before, const T &value) -->
  <!-- QStringList inherits from QList -->
  <function name="QList::insert,QStringList::insert">
    <noreturn>false</noreturn>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- QStandardItem *QStandardItemModel::item(int row, int column = 0) const -->
  <function name="QStandardItemModel::item">
    <noreturn>false</noreturn>
    <returnValue type="QStandardItem *"/>
    <use-retval/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="0">
      <not-uninit/>
    </arg>
  </function>
  <!-- QStandardItem *QStandardItemModel::itemFromIndex(const QModelIndex &index) const -->
  <function name="QStandardItemModel::itemFromIndex">
    <noreturn>false</noreturn>
    <returnValue type="QStandardItem *"/>
    <use-retval/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString QString::fromLatin1(const char *str, int size = -1) //static -->
  <!-- QString QString::fromLatin1(const QByteArray &str) //static -->
  <function name="QString::fromLatin1">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="QString"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="-1">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString QString::fromLocal8Bit(const char * str, int size = -1) //static -->
  <function name="QString::fromLocal8Bit">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="QString"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2" default="-1">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString QString::fromStdString(const std::string &str) //static -->
  <function name="QString::fromStdString">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="QString"/>
    <leak-ignore/>
    <arg nr="1"/>
  </function>
  <!-- QString QString::fromUtf8(const char *str, int size = -1) //static -->
  <!-- QString QString::fromUtf8(const QByteArray &str) //static -->
  <function name="QString::fromUtf8">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="QString"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="-1">
      <not-uninit/>
    </arg>
  </function>
  <!-- int QList::indexOf(const T &) const -->
  <!-- int QStringList::indexOf(const QString &) const -->
  <function name="QList::indexOf,QStringList::indexOf">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="signed int"/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- int QString::indexOf(const QString &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- int QString::indexOf(QChar ch, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- int QString::indexOf(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- int QString::indexOf(const QStringRef &str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- int QString::indexOf(const QRegExp &rx, int from = 0) const -->
  <!-- int QString::indexOf(QRegExp &rx, int from = 0) const -->
  <!-- int QString::indexOf(const QRegularExpression &re, int from = 0) const -->
  <!-- int QString::indexOf(const QRegularExpression &re, int from, QRegularExpressionMatch *rmatch) const -->
  <function name="QString::indexOf">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="signed int"/>
    <const/>
    <arg nr="any">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString & QString::insert(int position, const QString & str) -->
  <!-- QString & QString::insert(int position, const QLatin1String & str) -->
  <!-- QString & QString::insert(int position, const QChar * unicode, int size) -->
  <!-- QString & QString::insert(int position, QChar ch) -->
  <function name="QString::insert">
    <noreturn>false</noreturn>
    <returnValue type="QString &amp;"/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="3" default="0">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!-- bool QString::isRightToLeft() const -->
  <function name="QString::isRightToLeft">
    <noreturn>false</noreturn>
    <returnValue type="bool"/>
    <use-retval/>
    <const/>
  </function>
  <!-- int QList::lastIndexOf(const T &value, int from = -1) const -->
  <!-- int QStringList::lastIndexOf(const QString &value, int from = -1) const -->
  <function name="QList::lastIndexOf,QStringList::lastIndexOf">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="int"/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="-1">
      <not-uninit/>
    </arg>
  </function>
  <!-- int QString::lastIndexOf(const QString &str, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <function name="QString::lastIndexOf">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="signed int"/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="-1">
      <not-uninit/>
    </arg>
    <arg nr="3" default="Qt::CaseSensitive">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString QString::left(int n) const -->
  <function name="QString::left">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!--  QList<T> QList::mid(int pos, int length = -1) const -->
  <!--  QString QString::mid(int position, int n = -1) const -->
  <!--  QStringList QStringList::mid(int pos, int length = -1) const -->
  <function name="QList::mid,QString::mid,QStringList::mid">
    <noreturn>false</noreturn>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="-1">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString QString::number(long n, int base = 10) -->
  <!-- QString QString::number(uint n, int base = 10) -->
  <!-- QString QString::number(int n, int base = 10) -->
  <!-- QString QString::number(ulong n, int base = 10) -->
  <!-- QString QString::number(qlonglong n, int base = 10) -->
  <!-- QString QString::number(qulonglong n, int base = 10) -->
  <!-- QString QString::number(double n, char format = 'g', int precision = 6) -->
  <function name="QString::number">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <leak-ignore/>
    <arg nr="any">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QList::prepend(const T &value) -->
  <!-- QStringList inherits from QList -->
  <function name="QList::prepend,QStringList::prepend">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString & QString::prepend(const QString & str) -->
  <!-- QString & QString::prepend(const QLatin1String & str) -->
  <!-- QString & QString::prepend(const QByteArray & ba) -->
  <!-- QString & QString::prepend(const char * str) -->
  <!-- QString & QString::prepend(QChar ch) -->
  <function name="QString::prepend">
    <noreturn>false</noreturn>
    <returnValue type="QString &amp;"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!-- void QList::push_back(const T &value) -->
  <!-- QStringList inherits from QList -->
  <function name="QList::push_back,QStringList::push_back">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QList::push_front(const T &value) -->
  <!-- QStringList inherits from QList -->
  <function name="QList::push_front,QStringList::push_front">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString & QString::remove(int position, int n) -->
  <!-- QString & QString::remove(QChar ch, Qt::CaseSensitivity cs = Qt::CaseSensitive) -->
  <!-- QString & QString::remove(const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive) -->
  <!-- QString & QString::remove(const QRegExp & rx) -->
  <function name="QString::remove">
    <noreturn>false</noreturn>
    <returnValue type="QString &amp;"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="0">
      <not-uninit/>
    </arg>
  </function>
  <!-- int QList::removeAll(const T &value) -->
  <!-- QStringList inherits from QList -->
  <function name="QList::removeAll,QStringList::removeAll">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QList::removeAt(int i) -->
  <!-- QStringList inherits from QList -->
  <function name="QList::removeAt,QStringList::removeAt">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- void QStandardItem::removeRow(int row) -->
  <function name="QStandardItem::removeRow">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QStandardItem::removeRows(int row, int count) -->
  <function name="QStandardItem::removeRows">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
  </function>
  <!-- bool QAbstractItemModel::removeRow(int row, const QModelIndex &parent = QModelIndex()) -->
  <!-- QStandardItemModel inherits from QAbstractItemModel -->
  <function name="QAbstractItemModel::removeRow,QStandardItemModel::removeRow">
    <noreturn>false</noreturn>
    <returnValue type="bool"/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="2" default="0">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!-- bool QStandardItemModel::removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) -->
  <function name="QStandardItemModel::removeRows">
    <noreturn>false</noreturn>
    <returnValue type="bool"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
      <not-bool/>
    </arg>
    <arg nr="3" default="0">
      <not-uninit/>
      <not-bool/>
    </arg>
  </function>
  <!-- QString QString::repeated(int times) const -->
  <function name="QString::repeated">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString & QString::replace(int position, int n, const QString & after) -->
  <!-- QString & QString::replace(int position, int n, const QChar * unicode, int size) -->
  <!-- QString & QString::replace(int position, int n, QChar after) -->
  <!-- QString & QString::replace(const QString & before, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive) -->
  <!-- QString & QString::replace(const QChar * before, int blen, const QChar * after, int alen, Qt::CaseSensitivity cs = Qt::CaseSensitive) -->
  <!-- QString & QString::replace(QChar ch, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive) -->
  <!-- QString & QString::replace(QChar before, QChar after, Qt::CaseSensitivity cs = Qt::CaseSensitive) -->
  <!-- QString & QString::replace(const QLatin1String & before, const QLatin1String & after, Qt::CaseSensitivity cs = Qt::CaseSensitive) -->
  <!-- QString & QString::replace(const QLatin1String & before, const QString & after, Qt::CaseSensitivity cs = Qt::CaseSensitive) -->
  <!-- QString & QString::replace(const QString & before, const QLatin1String & after, Qt::CaseSensitivity cs = Qt::CaseSensitive) -->
  <!-- QString & QString::replace(QChar c, const QLatin1String & after, Qt::CaseSensitivity cs = Qt::CaseSensitive) -->
  <!-- QString & QString::replace(const QRegExp & rx, const QString & after) -->
  <function name="QString::replace">
    <noreturn>false</noreturn>
    <returnValue type="QString &amp;"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3" default="0">
      <not-uninit/>
    </arg>
    <arg nr="4" default="0">
      <not-uninit/>
    </arg>
    <arg nr="5" default="0">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QString::reserve(int size) -->
  <function name="QString::reserve">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString QString::right(int n) const -->
  <function name="QString::right">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1">
      <not-uninit/>
      <not-bool/>
      <valid>0:</valid>
    </arg>
  </function>
  <!-- QString QString::section(QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const -->
  <!-- QString QString::section(const QString & sep, int start, int end = -1, SectionFlags flags = SectionDefault) const -->
  <!-- QString QString::section(const QRegExp & reg, int start, int end = -1, SectionFlags flags = SectionDefault) const -->
  <function name="QString::section">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <arg nr="3" default="-1">
      <not-uninit/>
    </arg>
    <arg nr="4" default="SectionDefault">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString & QString::setNum(int n, int base = 10) -->
  <!-- QString & QString::setNum(uint n, int base = 10) -->
  <!-- QString & QString::setNum(long n, int base = 10) -->
  <!-- QString & QString::setNum(ulong n, int base = 10) -->
  <!-- QString & QString::setNum(qlonglong n, int base = 10) -->
  <!-- QString & QString::setNum(qulonglong n, int base = 10) -->
  <!-- QString & QString::setNum(short n, int base = 10) -->
  <!-- QString & QString::setNum(ushort n, int base = 10) -->
  <!-- QString & QString::setNum(double n, char format = 'g', int precision = 6) -->
  <!-- QString & QString::setNum(float n, char format = 'g', int precision = 6) -->
  <function name="QString::setNum">
    <noreturn>false</noreturn>
    <returnValue type="QString &amp;"/>
    <leak-ignore/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="0">
      <not-uninit/>
    </arg>
    <arg nr="3" default="6">
      <not-uninit/>
    </arg>
  </function>
  <!-- QStringList QString::split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- QStringList QString::split(QChar sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const -->
  <!-- QStringList QString::split(const QRegExp &rx, SplitBehavior behavior = KeepEmptyParts) const -->
  <!-- QStringList QString::split(const QRegularExpression &re, SplitBehavior behavior = KeepEmptyParts) const -->
  <function name="QString::split">
    <noreturn>false</noreturn>
    <returnValue type="QStringList"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QList::swap(QList<T> &other) -->
  <!-- void QList::swap(int i, int j) -->
  <!-- QStringList inherits from QList -->
  <function name="QList::swap,QStringList::swap">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
    <arg nr="2" default="0">
      <not-uninit/>
    </arg>
  </function>
  <!-- double QString::toDouble(bool * ok = 0) const -->
  <function name="QString::toDouble">
    <noreturn>false</noreturn>
    <returnValue type="double"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1" default="0">
    </arg>
  </function>
  <!-- float QString::toFloat(bool * ok = 0) const -->
  <function name="QString::toFloat">
    <noreturn>false</noreturn>
    <returnValue type="float"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1" default="0">
    </arg>
  </function>
  <!-- int QString::toInt(bool *ok = Q_NULLPTR, int base = 10) const -->
  <function name="QString::toInt">
    <noreturn>false</noreturn>
    <returnValue type="int"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1" default="0">
      <not-uninit/>
    </arg>
    <arg nr="2" default="10">
      <not-uninit/>
      <valid>0,2:36</valid>
    </arg>
  </function>
  <!-- long QString::toLong(bool * ok = 0, int base = 10) const -->
  <function name="QString::toLong">
    <noreturn>false</noreturn>
    <returnValue type="long"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1" default="0">
      <not-uninit/>
    </arg>
    <arg nr="2" default="10">
      <not-uninit/>
      <valid>0,2:36</valid>
    </arg>
  </function>
  <!-- qlonglong QString::toLongLong(bool * ok = 0, int base = 10) const -->
  <function name="QString::toLongLong">
    <noreturn>false</noreturn>
    <returnValue type="qlonglong"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1" default="0">
      <not-uninit/>
    </arg>
    <arg nr="2" default="10">
      <not-uninit/>
      <valid>0,2:36</valid>
    </arg>
  </function>
  <!-- QString QString::toLower() const -->
  <function name="QString::toLower">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <const/>
  </function>
  <!-- short QString::toShort(bool * ok = 0, int base = 10) const -->
  <function name="QString::toShort">
    <noreturn>false</noreturn>
    <returnValue type="short"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1" default="0">
      <not-uninit/>
    </arg>
    <arg nr="2" default="10">
      <not-uninit/>
      <valid>0,2:36</valid>
    </arg>
  </function>
  <!-- std::string QString::toStdString() const -->
  <function name="QString::toStdString">
    <noreturn>false</noreturn>
    <returnValue type="std::string"/>
    <use-retval/>
    <const/>
  </function>
  <!-- uint QString::toUInt(bool * ok = 0, int base = 10) const -->
  <function name="QString::toUInt">
    <noreturn>false</noreturn>
    <returnValue type="uint"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1" default="0">
      <not-uninit/>
    </arg>
    <arg nr="2" default="10">
      <not-uninit/>
      <valid>0,2:36</valid>
    </arg>
  </function>
  <!-- ulong QString::toULong(bool * ok = 0, int base = 10) const -->
  <function name="QString::toULong">
    <noreturn>false</noreturn>
    <returnValue type="ulong"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1" default="0">
      <not-uninit/>
    </arg>
    <arg nr="2" default="10">
      <not-uninit/>
      <valid>0,2:36</valid>
    </arg>
  </function>
  <!-- qulonglong QString::toULongLong(bool * ok = 0, int base = 10) const -->
  <function name="QString::toULongLong">
    <noreturn>false</noreturn>
    <returnValue type="qulonglong"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1" default="0">
      <not-uninit/>
    </arg>
    <arg nr="2" default="10">
      <not-uninit/>
      <valid>0,2:36</valid>
    </arg>
  </function>
  <!-- ushort QString::toUShort(bool * ok = 0, int base = 10) const -->
  <function name="QString::toUShort">
    <noreturn>false</noreturn>
    <returnValue type="ushort"/>
    <use-retval/>
    <leak-ignore/>
    <const/>
    <arg nr="1" default="0">
      <not-uninit/>
    </arg>
    <arg nr="2" default="10">
      <not-uninit/>
      <valid>0,2:36</valid>
    </arg>
  </function>
  <!-- QString QString::toUpper() const -->
  <function name="QString::toUpper">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <const/>
  </function>
  <!-- QByteArray QString::toUtf8() const -->
  <function name="QString::toUtf8">
    <noreturn>false</noreturn>
    <returnValue type="QByteArray"/>
    <use-retval/>
    <const/>
  </function>
  <!-- QString QString::trimmed() const -->
  <function name="QString::trimmed">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <const/>
  </function>
  <!-- void QString::truncate(int position) -->
  <function name="QString::truncate">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- QString & QString::vsprintf(const char * cformat, va_list ap) -->
  <function name="QString::vsprintf">
    <noreturn>false</noreturn>
    <returnValue type="QString &amp;"/>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
      <not-uninit/>
    </arg>
    <arg nr="2">
      <not-uninit/>
    </arg>
    <warn severity="style" alternatives="QString::vasprintf,QString::arg,QTextStream" reason="Obsolete"/>
  </function>
  <!-- QString QStringList::join(const QString &separator) const -->
  <!-- QString QStringList::join(QLatin1String separator) const -->
  <!-- QString QStringList::join(QChar separator) const -->
  <function name="QStringList::join">
    <noreturn>false</noreturn>
    <use-retval/>
    <returnValue type="QString"/>
    <leak-ignore/>
    <const/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QMetaObject::connectSlotsByName(QObject *object) -->
  <function name="QMetaObject::connectSlotsByName">
    <noreturn>false</noreturn>
    <leak-ignore/>
    <arg nr="1">
      <not-null/>
    </arg>
  </function>
  <!-- QString QDir::fromNativeSeparators(const QString &pathName) -->
  <!-- QString QDir::toNativeSeparators(const QString &pathName) -->
  <function name="QDir::fromNativeSeparators,QDir::toNativeSeparators">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- bool QFile::open(OpenMode mode) -->
  <!-- bool QFile::open(FILE *fh, OpenMode mode, FileHandleFlags handleFlags = DontCloseHandle) -->
  <!-- bool QFile::open(int fd, OpenMode mode, FileHandleFlags handleFlags = DontCloseHandle) -->
  <function name="QFile::open">
    <noreturn>false</noreturn>
    <returnValue type="bool"/>
    <leak-ignore/>
    <arg nr="any">
      <not-uninit/>
    </arg>
  </function>
  <!-- bool QFile::remove() -->
  <!-- bool QFile::remove(const QString &fileName) -->
  <function name="QFile::remove">
    <noreturn>false</noreturn>
    <returnValue type="bool"/>
    <leak-ignore/>
    <arg nr="any">
      <not-uninit/>
    </arg>
  </function>
  <!-- bool QFile::rename(const QString &newName) -->
  <!-- bool QFile::rename(const QString &oldName, const QString &newName) -->
  <function name="QFile::rename">
    <noreturn>false</noreturn>
    <returnValue type="bool"/>
    <leak-ignore/>
    <arg nr="any">
      <not-uninit/>
    </arg>
  </function>
  <!-- void QFile::setFileName(const QString &name) -->
  <function name="QFile::setFileName">
    <noreturn>false</noreturn>
    <returnValue type="void"/>
    <arg nr="1">
      <not-uninit/>
    </arg>
  </function>
  <!-- qint64 QFile::size() const -->
  <!-- qint64 QIODevice::size() const -->
  <function name="QFile::size,QIODevice::size">
    <noreturn>false</noreturn>
    <returnValue type="qint64"/>
    <use-retval/>
    <const/>
  </function>
  <!-- QString QFileDialog::getOpenFileName(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options()) //static -->
  <!-- QString QFileDialog::getSaveFileName(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options()) //static -->
  <!-- QString QFileDialog::getExistingDirectory(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), Options options = ShowDirsOnly) //static -->
  <function name="QFileDialog::getOpenFileName,QFileDialog::getSaveFileName,QFileDialog::getExistingDirectory">
    <noreturn>false</noreturn>
    <returnValue type="QString"/>
    <use-retval/>
    <arg nr="any">
      <not-uninit/>
    </arg>
  </function>
  <!-- QStringList QFileDialog::getOpenFileNames(QWidget *parent = Q_NULLPTR, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = Q_NULLPTR, Options options = Options()) //static -->
  <function name="QFileDialog::getOpenFileNames">
    <noreturn>false</noreturn>
    <returnValue type="QStringList"/>
    <use-retval/>
    <arg nr="any">
      <not-uninit/>
    </arg>
  </function>
  <container id="qtContainer" opLessAllowed="false">
    <type templateParameter="0"/>
    <size>
      <function name="append" action="push"/>
      <function name="clear" action="clear"/>
      <function name="count" yields="size"/>
      <function name="erase" action="erase"/>
      <function name="insert" action="insert"/>
      <function name="isEmpty" yields="empty"/>
      <function name="length" yields="size"/>
      <function name="size" yields="size"/>
      <function name="swap" action="change"/>
    </size>
    <access>
      <function name="begin" yields="start-iterator"/>
      <function name="cbegin" yields="start-iterator"/>
      <function name="constBegin" yields="start-iterator"/>
      <function name="end" yields="end-iterator"/>
      <function name="cend" yields="end-iterator"/>
      <function name="constEnd" yields="end-iterator"/>
    </access>
  </container>
  <container id="qtList" startPattern="QList &lt;" inherits="qtContainer" opLessAllowed="true">
    <type string="std-like"/>
    <size>
      <function name="resize" action="resize"/>
    </size>
    <access indexOperator="array-like">
      <function name="at" yields="at_index"/>
      <function name="front" yields="item"/>
      <function name="back" yields="item"/>
    </access>
  </container>
  <container id="qtString" startPattern="QString" endPattern="" inherits="qtContainer" opLessAllowed="true">
    <type string="std-like"/>
    <size>
      <function name="isNull" yields="empty"/>
      <function name="resize" action="resize"/>
    </size>
    <access indexOperator="array-like">
      <function name="at" yields="at_index"/>
      <function name="front" yields="item"/>
      <function name="back" yields="item"/>
    </access>
  </container>
  <container id="qtStringList" startPattern="QStringList" inherits="qtContainer" opLessAllowed="true">
    <type string="std-like"/>
    <size>
      <function name="resize" action="resize"/>
    </size>
    <access indexOperator="array-like">
      <function name="at" yields="at_index"/>
      <function name="front" yields="item"/>
      <function name="back" yields="item"/>
    </access>
  </container>
  <define name="Q_ARG(type, data)" value="QArgument&lt;type &gt;(#type, data)"/>
  <!-- TODO: Enable when ticket 8479 got fixed
  <define name="Q_D(Class)" value="Class##Private * const d = d_func()"/>
  -->
  <define name="Q_DECL_EXPORT" value=""/>
  <define name="Q_DECL_IMPORT" value=""/>
  <define name="Q_DECLARE_FLAGS(x,y)" value=""/>
  <define name="Q_DISABLE_COPY(C)" value="C(C&amp;);C&amp; operator=(const C&amp;);"/>
  <define name="Q_ENUM(X)" value=""/>
  <define name="Q_ENUMS(X)" value=""/>
  <define name="Q_FLAGS(X)" value=""/>
  <define name="Q_INTERFACES(X)" value=""/>
  <define name="Q_OBJECT" value=""/>
  <define name="Q_PROPERTY(X)" value=""/>
  <define name="Q_Q(Class)" value="Class * const q = q_func()"/>
  <define name="Q_RETURN_ARG(type, data)" value="QReturnArgument&lt;type &gt;(#type, data)"/>
  <define name="Q_UNUSED(X)" value="(void)X;"/>
  <define name="foreach(A,B)" value="for(A:B)"/>
  <define name="emit(X)" value="(X)"/>
  <podtype name="qint8" sign="s" size="1"/>
  <podtype name="qint16" sign="s" size="2"/>
  <podtype name="qint32" sign="s" size="4"/>
  <podtype name="qint64" sign="s" size="8"/>
  <podtype name="quint8" sign="u" size="1"/>
  <podtype name="quint16" sign="u" size="2"/>
  <podtype name="quint32" sign="u" size="4"/>
  <podtype name="quint64" sign="u" size="8"/>
  <!-- https://doc.qt.io/qt-5/qtglobal.html#qlonglong-typedef "This is the same as qint64." -->
  <podtype name="qlonglong" sign="s" size="8"/>
  <!-- https://doc.qt.io/qt-5/qtglobal.html#qulonglong-typedef "This is the same as quint64." -->
  <podtype name="qulonglong" sign="u" size="8"/>
  <podtype name="uchar" sign="u" size="1"/>
  <podtype name="uint" sign="u"/>
  <podtype name="ulong" sign="u"/>
  <podtype name="ushort" sign="u"/>
  <podtype name="qptrdiff" sign="s"/>
  <podtype name="qintptr" sign="s"/>
  <podtype name="quintptr" sign="u"/>
</def>