fiftyone-devicedetection-onpremise 4.5.0a36__tar.gz → 4.5.0a38__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/PKG-INFO +1 -1
  2. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/collection.c +4 -0
  3. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/fiftyone.h +5 -0
  4. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/profile.c +50 -15
  5. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/profile.h +60 -1
  6. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/storedBinaryValue.c +23 -182
  7. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/storedBinaryValue.h +2 -0
  8. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/stringBuilder.c +8 -5
  9. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/value.c +25 -0
  10. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/wkbtot.c +29 -12
  11. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise.egg-info/PKG-INFO +1 -1
  12. fiftyone_devicedetection_onpremise-4.5.0a38/version.txt +1 -0
  13. fiftyone_devicedetection_onpremise-4.5.0a36/version.txt +0 -1
  14. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/MANIFEST.in +0 -0
  15. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/pyproject.toml +0 -0
  16. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/setup.cfg +0 -0
  17. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/setup.py +0 -0
  18. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/DeviceDetectionHashEngineModule.py +0 -0
  19. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/__init__.py +0 -0
  20. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/constants.py +0 -0
  21. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/ConfigDeviceDetection.cpp +0 -0
  22. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/ConfigDeviceDetection.hpp +0 -0
  23. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/ConfigDeviceDetection.i +0 -0
  24. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/EngineDeviceDetection.cpp +0 -0
  25. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/EngineDeviceDetection.hpp +0 -0
  26. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/EngineDeviceDetection.i +0 -0
  27. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/EvidenceDeviceDetection.cpp +0 -0
  28. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/EvidenceDeviceDetection.hpp +0 -0
  29. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/EvidenceDeviceDetection.i +0 -0
  30. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/FiftyoneDegrees.hpp +0 -0
  31. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/ResultsDeviceDetection.cpp +0 -0
  32. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/ResultsDeviceDetection.hpp +0 -0
  33. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/ResultsDeviceDetection.i +0 -0
  34. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/Transform.cpp +0 -0
  35. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/Transform.hpp +0 -0
  36. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/Transform.i +0 -0
  37. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Collection.hpp +0 -0
  38. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Collection.i +0 -0
  39. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/CollectionConfig.cpp +0 -0
  40. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/CollectionConfig.hpp +0 -0
  41. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/CollectionConfig.i +0 -0
  42. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ComponentMetaData.cpp +0 -0
  43. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ComponentMetaData.hpp +0 -0
  44. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ComponentMetaData.i +0 -0
  45. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ConfigBase.cpp +0 -0
  46. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ConfigBase.hpp +0 -0
  47. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ConfigBase.i +0 -0
  48. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/CsTypes.i +0 -0
  49. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Date.cpp +0 -0
  50. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Date.hpp +0 -0
  51. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Date.i +0 -0
  52. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EngineBase.cpp +0 -0
  53. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EngineBase.hpp +0 -0
  54. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EngineBase.i +0 -0
  55. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EntityMetaData.hpp +0 -0
  56. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EntityMetaDataBuilder.hpp +0 -0
  57. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EvidenceBase.cpp +0 -0
  58. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EvidenceBase.hpp +0 -0
  59. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/EvidenceBase.i +0 -0
  60. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Exceptions.cpp +0 -0
  61. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Exceptions.hpp +0 -0
  62. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Exceptions.i +0 -0
  63. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/FiftyoneDegrees.hpp +0 -0
  64. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/IpAddress.cpp +0 -0
  65. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/IpAddress.hpp +0 -0
  66. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/IpAddress.i +0 -0
  67. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/JavaTypes.i +0 -0
  68. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/MapStringStringIterator.i +0 -0
  69. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/MetaData.cpp +0 -0
  70. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/MetaData.hpp +0 -0
  71. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/MetaData.i +0 -0
  72. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ProfileMetaData.cpp +0 -0
  73. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ProfileMetaData.hpp +0 -0
  74. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ProfileMetaData.i +0 -0
  75. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/PropertyMetaData.cpp +0 -0
  76. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/PropertyMetaData.hpp +0 -0
  77. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/PropertyMetaData.i +0 -0
  78. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/RequiredPropertiesConfig.cpp +0 -0
  79. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/RequiredPropertiesConfig.hpp +0 -0
  80. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/RequiredPropertiesConfig.i +0 -0
  81. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ResultsBase.cpp +0 -0
  82. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ResultsBase.hpp +0 -0
  83. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ResultsBase.i +0 -0
  84. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Types.i +0 -0
  85. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Value.hpp +0 -0
  86. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/Value.i +0 -0
  87. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ValueMetaData.cpp +0 -0
  88. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ValueMetaData.hpp +0 -0
  89. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ValueMetaData.i +0 -0
  90. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/array.h +0 -0
  91. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/bool.c +0 -0
  92. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/bool.h +0 -0
  93. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/cache.c +0 -0
  94. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/cache.h +0 -0
  95. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/collection.h +0 -0
  96. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/common.h +0 -0
  97. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/component.c +0 -0
  98. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/component.h +0 -0
  99. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/config.h +0 -0
  100. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/constants.h +0 -0
  101. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/data.c +0 -0
  102. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/data.h +0 -0
  103. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/dataset.c +0 -0
  104. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/dataset.h +0 -0
  105. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/date.h +0 -0
  106. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/evidence.c +0 -0
  107. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/evidence.h +0 -0
  108. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/exceptions.h +0 -0
  109. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/exceptionsc.c +0 -0
  110. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/file.c +0 -0
  111. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/file.h +0 -0
  112. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/fileOffset.h +0 -0
  113. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/float.c +0 -0
  114. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/float.h +0 -0
  115. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/headers.c +0 -0
  116. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/headers.h +0 -0
  117. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/indices.c +0 -0
  118. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/indices.h +0 -0
  119. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ip.c +0 -0
  120. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ip.h +0 -0
  121. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/ip.i +0 -0
  122. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/json.c +0 -0
  123. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/json.h +0 -0
  124. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/list.c +0 -0
  125. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/list.h +0 -0
  126. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/memory.c +0 -0
  127. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/memory.h +0 -0
  128. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/overrides.c +0 -0
  129. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/overrides.h +0 -0
  130. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/pair.h +0 -0
  131. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/pool.c +0 -0
  132. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/pool.h +0 -0
  133. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/process.c +0 -0
  134. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/process.h +0 -0
  135. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/properties.c +0 -0
  136. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/properties.h +0 -0
  137. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/property.c +0 -0
  138. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/property.h +0 -0
  139. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/propertyValueType.h +0 -0
  140. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/resource.c +0 -0
  141. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/resource.h +0 -0
  142. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/results.c +0 -0
  143. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/results.h +0 -0
  144. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/snprintf.h +0 -0
  145. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/status.c +0 -0
  146. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/status.h +0 -0
  147. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/string.c +0 -0
  148. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/string.h +0 -0
  149. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/stringBuilder.h +0 -0
  150. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/string_pp.cpp +0 -0
  151. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/string_pp.hpp +0 -0
  152. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/Base.hpp +0 -0
  153. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/EngineTests.hpp +0 -0
  154. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/EvidenceTests.hpp +0 -0
  155. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/ExampleTests.hpp +0 -0
  156. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/FileHandle.hpp +0 -0
  157. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/FixedSizeCollection.hpp +0 -0
  158. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/HeadersContainer.hpp +0 -0
  159. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/StringCollection.hpp +0 -0
  160. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/TestStrings.hpp +0 -0
  161. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/VariableSizeCollection.hpp +0 -0
  162. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tests/pch.h +0 -0
  163. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/textfile.c +0 -0
  164. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/textfile.h +0 -0
  165. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/threading.c +0 -0
  166. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/threading.h +0 -0
  167. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tree.c +0 -0
  168. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/tree.h +0 -0
  169. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/value.h +0 -0
  170. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/wkbtot.h +0 -0
  171. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/wkbtot_pp.cpp +0 -0
  172. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/wkbtot_pp.hpp +0 -0
  173. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/yamlfile.c +0 -0
  174. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/common-cxx/yamlfile.h +0 -0
  175. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/config-dd.h +0 -0
  176. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/dataset-dd.c +0 -0
  177. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/dataset-dd.h +0 -0
  178. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/fiftyone.h +0 -0
  179. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/gethighentropyvalues.c +0 -0
  180. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/gethighentropyvalues.h +0 -0
  181. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ComponentMetaDataBuilderHash.cpp +0 -0
  182. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ComponentMetaDataBuilderHash.hpp +0 -0
  183. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ComponentMetaDataCollectionHash.cpp +0 -0
  184. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ComponentMetaDataCollectionHash.hpp +0 -0
  185. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ConfigHash.cpp +0 -0
  186. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ConfigHash.hpp +0 -0
  187. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ConfigHash.i +0 -0
  188. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/EngineHash.cpp +0 -0
  189. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/EngineHash.hpp +0 -0
  190. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/EngineHash.i +0 -0
  191. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/MetaDataHash.cpp +0 -0
  192. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/MetaDataHash.hpp +0 -0
  193. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ProfileMetaDataBuilderHash.cpp +0 -0
  194. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ProfileMetaDataBuilderHash.hpp +0 -0
  195. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ProfileMetaDataCollectionHash.cpp +0 -0
  196. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ProfileMetaDataCollectionHash.hpp +0 -0
  197. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataBuilderHash.cpp +0 -0
  198. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataBuilderHash.hpp +0 -0
  199. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionForComponentHash.cpp +0 -0
  200. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionForComponentHash.hpp +0 -0
  201. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionForPropertyHash.cpp +0 -0
  202. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionForPropertyHash.hpp +0 -0
  203. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionHash.cpp +0 -0
  204. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/PropertyMetaDataCollectionHash.hpp +0 -0
  205. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHash.cpp +0 -0
  206. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHash.hpp +0 -0
  207. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHash.i +0 -0
  208. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHashSerializer.cpp +0 -0
  209. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHashSerializer.hpp +0 -0
  210. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ResultsHashSerializer.i +0 -0
  211. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataBuilderHash.cpp +0 -0
  212. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataBuilderHash.hpp +0 -0
  213. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionBaseHash.cpp +0 -0
  214. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionBaseHash.hpp +0 -0
  215. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionForProfileHash.cpp +0 -0
  216. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionForProfileHash.hpp +0 -0
  217. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionForPropertyHash.cpp +0 -0
  218. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionForPropertyHash.hpp +0 -0
  219. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionHash.cpp +0 -0
  220. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/ValueMetaDataCollectionHash.hpp +0 -0
  221. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/fiftyone.h +0 -0
  222. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/graph.c +0 -0
  223. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/graph.h +0 -0
  224. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/hash.c +0 -0
  225. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/hash.h +0 -0
  226. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/hash/hash.i +0 -0
  227. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/results-dd.c +0 -0
  228. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/results-dd.h +0 -0
  229. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/transform.h +0 -0
  230. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/cxx/src/transformc.c +0 -0
  231. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/devicedetection_datafile.py +0 -0
  232. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/devicedetection_onpremise.py +0 -0
  233. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/devicedetection_onpremise_pipelinebuilder.py +0 -0
  234. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/hash_python_wrap.cxx +0 -0
  235. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise/swig_data.py +0 -0
  236. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise.egg-info/SOURCES.txt +0 -0
  237. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise.egg-info/dependency_links.txt +0 -0
  238. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise.egg-info/requires.txt +0 -0
  239. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/src/fiftyone_devicedetection_onpremise.egg-info/top_level.txt +0 -0
  240. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/tests/test_automatic_data_file_updates.py +0 -0
  241. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/tests/test_devicedetection.py +0 -0
  242. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/tests/test_properties.py +0 -0
  243. {fiftyone_devicedetection_onpremise-4.5.0a36 → fiftyone_devicedetection_onpremise-4.5.0a38}/tests/test_swig.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiftyone_devicedetection_onpremise
3
- Version: 4.5.0a36
3
+ Version: 4.5.0a38
4
4
  Summary: This project contains 51Degrees Device Detection OnPremise engine that can be used with the 51Degrees Pipeline API. The Pipeline is a generic web request intelligence and data processing solution with the ability to add a range of 51Degrees and/or custom plug ins (Engines)
5
5
  Author: 51Degrees Engineering
6
6
  Author-email: engineering@51degrees.com
@@ -88,9 +88,13 @@ bool fiftyoneDegreesCollectionGetIsMemoryOnly() { return true; }
88
88
  * Used by memory collection where there is nothing to be done when the release
89
89
  * occurs because the memory it uses is only freed when the collection is
90
90
  * freed.
91
+ *
92
+ * The data is reset so that further item operations
93
+ * no longer access collection-controlled memory.
91
94
  */
92
95
  static void releaseNothing(Item *item) {
93
96
  assert(item != NULL);
97
+ DataReset(&item->data);
94
98
  }
95
99
  #ifdef _MSC_VER
96
100
  #pragma warning (default: 4100)
@@ -206,6 +206,10 @@ MAP_TYPE(WkbtotReductionMode)
206
206
  #define ProfileIterateValuesForPropertyWithIndex fiftyoneDegreesProfileIterateValuesForPropertyWithIndex /**< Synonym for #fiftyoneDegreesProfileIterateValuesForPropertyWithIndex function. */
207
207
  #define ProfileIterateValueIndexes fiftyoneDegreesProfileIterateValueIndexes /**< Synonym for #fiftyoneDegreesProfileIterateValueIndexes function. */
208
208
  #define ProfileIterateProfilesForPropertyAndValue fiftyoneDegreesProfileIterateProfilesForPropertyAndValue /**< Synonym for #fiftyoneDegreesProfileIterateProfilesForPropertyAndValue function. */
209
+ #define ProfileIterateProfilesForPropertyWithTypeAndValue fiftyoneDegreesProfileIterateProfilesForPropertyWithTypeAndValue /**< Synonym for #fiftyoneDegreesProfileIterateProfilesForPropertyWithTypeAndValue function. */
210
+ #define ProfileIterateProfilesForPropertyWithTypeAndValueAndOffsetExtractor fiftyoneDegreesProfileIterateProfilesForPropertyWithTypeAndValueAndOffsetExtractor /**< Synonym for #fiftyoneDegreesProfileIterateProfilesForPropertyWithTypeAndValueAndOffsetExtractor function. */
211
+ #define ProfileOffsetAsPureOffset fiftyoneDegreesProfileOffsetAsPureOffset /**< Synonym for #fiftyoneDegreesProfileOffsetAsPureOffset function. */
212
+ #define ProfileOffsetToPureOffset fiftyoneDegreesProfileOffsetToPureOffset /**< Synonym for #fiftyoneDegreesProfileOffsetToPureOffset function. */
209
213
  #define PropertiesGetPropertyIndexFromName fiftyoneDegreesPropertiesGetPropertyIndexFromName /**< Synonym for #fiftyoneDegreesPropertiesGetPropertyIndexFromName function. */
210
214
  #define TreeIterate fiftyoneDegreesTreeIterateNodes /**< Synonym for #fiftyoneDegreesTreeIterateNodes function. */
211
215
  #define TreeCount fiftyoneDegreesTreeCount /**< Synonym for #fiftyoneDegreesTreeCount function. */
@@ -290,6 +294,7 @@ MAP_TYPE(WkbtotReductionMode)
290
294
  #define ResourceManagerFree fiftyoneDegreesResourceManagerFree /**< Synonym for #fiftyoneDegreesResourceManagerFree function. */
291
295
  #define StringGet fiftyoneDegreesStringGet /**< Synonym for #fiftyoneDegreesStringGet function. */
292
296
  #define StoredBinaryValueGet fiftyoneDegreesStoredBinaryValueGet /**< Synonym for #fiftyoneDegreesStoredBinaryValueGet function. */
297
+ #define StoredBinaryValueRead fiftyoneDegreesStoredBinaryValueRead /**< Synonym for #fiftyoneDegreesStoredBinaryValueRead function. */
293
298
  #define StoredBinaryValueCompareWithString fiftyoneDegreesStoredBinaryValueCompareWithString /**< Synonym for #fiftyoneDegreesStoredBinaryValueCompareWithString function. */
294
299
  #define StoredBinaryValueToIntOrDefault fiftyoneDegreesStoredBinaryValueToIntOrDefault /**< Synonym for #fiftyoneDegreesStoredBinaryValueToIntOrDefault function. */
295
300
  #define StoredBinaryValueToDoubleOrDefault fiftyoneDegreesStoredBinaryValueToDoubleOrDefault /**< Synonym for #fiftyoneDegreesStoredBinaryValueToDoubleOrDefault function. */
@@ -426,24 +426,58 @@ uint32_t fiftyoneDegreesProfileIterateProfilesForPropertyAndValue(
426
426
  exception);
427
427
  }
428
428
 
429
+ uint32_t fiftyoneDegreesProfileOffsetToPureOffset(const void * const rawProfileOffset) {
430
+ return ((const ProfileOffset*)rawProfileOffset)->offset;
431
+ }
432
+ uint32_t fiftyoneDegreesProfileOffsetAsPureOffset(const void * const rawProfileOffset) {
433
+ return *(const uint32_t*)rawProfileOffset;
434
+ }
435
+
429
436
  uint32_t fiftyoneDegreesProfileIterateProfilesForPropertyWithTypeAndValue(
430
- fiftyoneDegreesCollection *strings,
431
- fiftyoneDegreesCollection *properties,
432
- fiftyoneDegreesCollection *propertyTypes,
433
- fiftyoneDegreesCollection *values,
434
- fiftyoneDegreesCollection *profiles,
435
- fiftyoneDegreesCollection *profileOffsets,
436
- const char *propertyName,
437
- const char* valueName,
438
- void *state,
439
- fiftyoneDegreesProfileIterateMethod callback,
440
- fiftyoneDegreesException *exception) {
437
+ fiftyoneDegreesCollection * const strings,
438
+ fiftyoneDegreesCollection * const properties,
439
+ fiftyoneDegreesCollection * const propertyTypes,
440
+ fiftyoneDegreesCollection * const values,
441
+ fiftyoneDegreesCollection * const profiles,
442
+ fiftyoneDegreesCollection * const profileOffsets,
443
+ const char * const propertyName,
444
+ const char * const valueName,
445
+ void * const state,
446
+ const fiftyoneDegreesProfileIterateMethod callback,
447
+ fiftyoneDegreesException * const exception) {
448
+ return ProfileIterateProfilesForPropertyWithTypeAndValueAndOffsetExtractor(
449
+ strings,
450
+ properties,
451
+ propertyTypes,
452
+ values,
453
+ profiles,
454
+ profileOffsets,
455
+ ProfileOffsetToPureOffset,
456
+ propertyName,
457
+ valueName,
458
+ state,
459
+ callback,
460
+ exception);
461
+ }
462
+
463
+ uint32_t fiftyoneDegreesProfileIterateProfilesForPropertyWithTypeAndValueAndOffsetExtractor(
464
+ fiftyoneDegreesCollection * const strings,
465
+ fiftyoneDegreesCollection * const properties,
466
+ fiftyoneDegreesCollection * const propertyTypes,
467
+ fiftyoneDegreesCollection * const values,
468
+ fiftyoneDegreesCollection * const profiles,
469
+ fiftyoneDegreesCollection * const profileOffsets,
470
+ const fiftyoneDegreesProfileOffsetValueExtractor offsetValueExtractor,
471
+ const char * const propertyName,
472
+ const char * const valueName,
473
+ void *const state,
474
+ const fiftyoneDegreesProfileIterateMethod callback,
475
+ fiftyoneDegreesException * const exception) {
441
476
  uint32_t i, count = 0;
442
477
  Item propertyItem, offsetItem, profileItem;
443
478
  uint32_t *profileValueIndex, *maxProfileValueIndex;
444
479
  Property *property;
445
480
  Profile *profile;
446
- ProfileOffset *profileOffset;
447
481
  DataReset(&propertyItem.data);
448
482
  property = PropertyGetByName(
449
483
  properties,
@@ -475,15 +509,16 @@ uint32_t fiftyoneDegreesProfileIterateProfilesForPropertyWithTypeAndValue(
475
509
  DataReset(&profileItem.data);
476
510
  uint32_t profileOffsetsCount = CollectionGetCount(profileOffsets);
477
511
  for (i = 0; i < profileOffsetsCount; i++) {
478
- profileOffset = (ProfileOffset*)profileOffsets->get(
512
+ const void * const rawProfileOffset = profileOffsets->get(
479
513
  profileOffsets,
480
514
  i,
481
515
  &offsetItem,
482
516
  exception);
483
- if (profileOffset != NULL && EXCEPTION_OKAY) {
517
+ if (rawProfileOffset != NULL && EXCEPTION_OKAY) {
518
+ const uint32_t pureProfileOffset = offsetValueExtractor(rawProfileOffset);
484
519
  profile = getProfileByOffset(
485
520
  profiles,
486
- profileOffset->offset,
521
+ pureProfileOffset,
487
522
  &profileItem,
488
523
  exception);
489
524
  if (profile != NULL && EXCEPTION_OKAY) {
@@ -107,6 +107,31 @@ typedef struct fiftyoneDegrees_profile_offset_t {
107
107
  } fiftyoneDegreesProfileOffset;
108
108
  #pragma pack(pop)
109
109
 
110
+ /**
111
+ * Function that extracts "pure" profile offset
112
+ * from a value inside `profileOffsets` collection
113
+ * @param rawProfileOffset a "raw" value retrieved from `profileOffsets`
114
+ * @return Offset to the profile in the profiles structure
115
+ */
116
+ typedef uint32_t (*fiftyoneDegreesProfileOffsetValueExtractor)(const void *rawProfileOffset);
117
+
118
+ /**
119
+ * Function that extracts "pure" profile offset
120
+ * from a fiftyoneDegreesProfileOffset.
121
+ * @param rawProfileOffset a "raw" ProfileOffset retrieved from `profileOffsets`
122
+ * @return Offset to the profile in the profiles structure
123
+ */
124
+ uint32_t fiftyoneDegreesProfileOffsetToPureOffset(const void *rawProfileOffset);
125
+
126
+ /**
127
+ * Function that extracts "pure" profile offset
128
+ * from a value (that starts with a "pure" profile offset)
129
+ * inside `profileOffsets` collection
130
+ * @param rawProfileOffset a "raw" value retrieved from `profileOffsets`
131
+ * @return Offset to the profile in the profiles structure
132
+ */
133
+ uint32_t fiftyoneDegreesProfileOffsetAsPureOffset(const void *rawProfileOffset);
134
+
110
135
  /**
111
136
  * Definition of a callback function which is passed an item of a type
112
137
  * determined by the iteration method.
@@ -242,7 +267,7 @@ EXTERNAL uint32_t fiftyoneDegreesProfileIterateValuesForPropertyWithIndex(
242
267
  * @param values collection containing all values
243
268
  * @param profiles collection containing the profiles referenced by the profile
244
269
  * offsets
245
- * @param profileOffsets collection containing all profile offsets
270
+ * @param profileOffsets collection containing all profile offsets (with IDs)
246
271
  * @param propertyName name of the property the value relates to
247
272
  * @param valueName name of the value to iterate the profiles for
248
273
  * @param state pointer to data needed by the callback method
@@ -264,6 +289,40 @@ EXTERNAL uint32_t fiftyoneDegreesProfileIterateProfilesForPropertyWithTypeAndVal
264
289
  fiftyoneDegreesProfileIterateMethod callback,
265
290
  fiftyoneDegreesException *exception);
266
291
 
292
+ /**
293
+ * Iterate all profiles which contain the specified value, calling the callback
294
+ * method for each.
295
+ * @param strings collection containing the strings referenced properties and
296
+ * values
297
+ * @param properties collection containing all properties
298
+ * @param propertyTypes collection containing types for all properties
299
+ * @param values collection containing all values
300
+ * @param profiles collection containing the profiles referenced by the profile
301
+ * offsets
302
+ * @param profileOffsets collection containing all profile offsets (any form)
303
+ * @param offsetValueExtractor converts `profileOffsets` value to "pure" offset
304
+ * @param propertyName name of the property the value relates to
305
+ * @param valueName name of the value to iterate the profiles for
306
+ * @param state pointer to data needed by the callback method
307
+ * @param callback method to be called for each matching profile
308
+ * @param exception pointer to an exception data structure to be used if an
309
+ * exception occurs. See exceptions.h
310
+ * @return the number matching profiles which have been iterated
311
+ */
312
+ EXTERNAL uint32_t fiftyoneDegreesProfileIterateProfilesForPropertyWithTypeAndValueAndOffsetExtractor(
313
+ fiftyoneDegreesCollection *strings,
314
+ fiftyoneDegreesCollection *properties,
315
+ fiftyoneDegreesCollection *propertyTypes,
316
+ fiftyoneDegreesCollection *values,
317
+ fiftyoneDegreesCollection *profiles,
318
+ fiftyoneDegreesCollection *profileOffsets,
319
+ fiftyoneDegreesProfileOffsetValueExtractor offsetValueExtractor,
320
+ const char *propertyName,
321
+ const char* valueName,
322
+ void *state,
323
+ fiftyoneDegreesProfileIterateMethod callback,
324
+ fiftyoneDegreesException *exception);
325
+
267
326
  /**
268
327
  * Iterate all profiles which contain the specified value, calling the callback
269
328
  * method for each.
@@ -205,116 +205,6 @@ StoredBinaryValue* fiftyoneDegreesStoredBinaryValueGet(
205
205
  return result;
206
206
  }
207
207
 
208
- /**
209
- * Function to compare the current String item to the
210
- * target search value using the IpAddress format.
211
- * @param value the current String item
212
- * @param target the target search value. This should
213
- * be in string readable format of an IP address.
214
- * @return 0 if they are equal, otherwise negative
215
- * for smaller and positive for bigger
216
- */
217
- static int compareIpAddressToString(const VarLengthByteArray * const value, const char * const target) {
218
- int result = 0;
219
- IpAddress ipAddress;
220
- bool parsed = IpAddressParse(
221
- target,
222
- target + strlen(target),
223
- &ipAddress);
224
- if (parsed) {
225
- const int16_t valueLength = value->size;
226
- int16_t searchLength = 0;
227
- switch (ipAddress.type) {
228
- case IP_TYPE_IPV4:
229
- searchLength = IPV4_LENGTH;
230
- break;
231
- case IP_TYPE_IPV6:
232
- searchLength = IPV6_LENGTH;
233
- break;
234
- case IP_TYPE_INVALID:
235
- default:
236
- break;
237
- }
238
-
239
- if (searchLength == 0) {
240
- result = valueLength;
241
- }
242
- else {
243
- // Compare length first
244
- const size_t compareLength = ((valueLength < searchLength)
245
- ? valueLength : searchLength);
246
- result = memcmp(&value->firstByte,
247
- ipAddress.value, compareLength);
248
- if (result == 0) {
249
- result = valueLength - searchLength;
250
- }
251
- }
252
- }
253
- return result;
254
- }
255
-
256
- static int compareWkbToString(
257
- const VarLengthByteArray * const binaryValue,
258
- const WkbtotReductionMode reductionMode,
259
- const char * const target,
260
- Exception * const exception) {
261
- WkbtotResult toWktResult = {
262
- 0,
263
- false,
264
- };
265
-
266
- if (!binaryValue || !exception) {
267
- EXCEPTION_SET(FIFTYONE_DEGREES_STATUS_NULL_POINTER);
268
- return -1;
269
- }
270
-
271
- int result = -1;
272
-
273
- {
274
- char buffer[REASONABLE_WKT_STRING_LENGTH];
275
- StringBuilder builder = { buffer, REASONABLE_WKT_STRING_LENGTH };
276
- StringBuilderInit(&builder);
277
- WriteWkbAsWktToStringBuilder(
278
- &binaryValue->firstByte,
279
- reductionMode,
280
- MAX_DOUBLE_DECIMAL_PLACES,
281
- &builder,
282
- exception
283
- );
284
- StringBuilderComplete(&builder);
285
- toWktResult = (WkbtotResult){
286
- builder.added,
287
- builder.full,
288
- };
289
- if (EXCEPTION_OKAY && !toWktResult.bufferTooSmall) {
290
- result = strcmp(buffer, target);
291
- }
292
- }
293
- if (toWktResult.bufferTooSmall) {
294
- EXCEPTION_CLEAR;
295
- const size_t requiredSize = toWktResult.written + 1;
296
- char * const buffer = Malloc(requiredSize);
297
- StringBuilder builder = { buffer, requiredSize };
298
- StringBuilderInit(&builder);
299
- WriteWkbAsWktToStringBuilder(
300
- &binaryValue->firstByte,
301
- reductionMode,
302
- MAX_DOUBLE_DECIMAL_PLACES,
303
- &builder,
304
- exception
305
- );
306
- StringBuilderComplete(&builder);
307
- toWktResult = (WkbtotResult){
308
- builder.added,
309
- builder.full,
310
- };
311
- if (EXCEPTION_OKAY && !toWktResult.bufferTooSmall) {
312
- result = strcmp(buffer, target);
313
- }
314
- }
315
- return result;
316
- }
317
-
318
208
  static double shortToDouble(const StoredBinaryValue * const value, const double maxAngle) {
319
209
  return (value->shortValue * maxAngle) / INT16_MAX;
320
210
  }
@@ -324,88 +214,39 @@ static double toAzimuth(const StoredBinaryValue * const value) {
324
214
  static double toDeclination(const StoredBinaryValue * const value) {
325
215
  return shortToDouble(value, 90);
326
216
  }
327
- static double toDoubleFromFloat(const StoredBinaryValue * const value) {
328
- return FLOAT_TO_NATIVE(value->floatValue);
329
- }
330
-
331
- static int compareDoubleToString(
332
- const double testedValue,
333
- const char * const target) {
334
-
335
- const double searchValue = (float)strtod(target, NULL);
336
- if (errno == ERANGE)
337
- {
338
- errno = 0;
339
- return -1;
340
- }
341
- const double dv = testedValue - searchValue;
342
- return !dv ? 0 : (dv < 0 ? -1 : 1);
343
- }
344
217
 
345
218
  int fiftyoneDegreesStoredBinaryValueCompareWithString(
346
219
  const StoredBinaryValue * const value,
347
220
  const PropertyValueType storedValueType,
348
221
  const char * const target,
222
+ StringBuilder * const tempBuilder,
349
223
  Exception * const exception) {
350
224
 
351
- switch (storedValueType) {
352
- case FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_STRING: {
353
- const size_t targetLength = strlen(target);
354
- const size_t valueLength = value->stringValue.size - 1;
355
- const size_t cmpLength = (targetLength < valueLength) ? targetLength : valueLength;
356
- const int result = strncmp(&value->stringValue.value, target, cmpLength);
357
- if (result) {
358
- return result;
359
- }
360
- if (cmpLength < targetLength) {
361
- return -1;
362
- }
363
- return 0;
364
- }
365
- case FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_IP_ADDRESS: {
366
- return compareIpAddressToString(&value->byteArrayValue, target);
367
- }
368
- case FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_WKB: {
369
- return compareWkbToString(
370
- &value->byteArrayValue,
371
- FIFTYONE_DEGREES_WKBToT_REDUCTION_NONE,
372
- target,
373
- exception);
374
- }
375
- case FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_WKB_R: {
376
- return compareWkbToString(
377
- &value->byteArrayValue,
378
- FIFTYONE_DEGREES_WKBToT_REDUCTION_SHORT,
379
- target,
380
- exception);
381
- }
382
- case FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_INTEGER: {
383
- const int32_t intValue = value->intValue;
384
- const int32_t searchInt = (int32_t) strtol(target, NULL, 10);
385
- if (errno == ERANGE)
386
- {
387
- errno = 0;
388
- return -1;
389
- }
390
- return intValue - searchInt;
391
- }
392
- case FIFTYONE_DEGREES_PROPERTY_VALUE_SINGLE_PRECISION_FLOAT: {
393
- return compareDoubleToString(toDoubleFromFloat(value), target);
394
- }
395
- case FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_AZIMUTH: {
396
- return compareDoubleToString(toAzimuth(value), target);
397
- }
398
- case FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_DECLINATION: {
399
- return compareDoubleToString(toDeclination(value), target);
400
- }
401
- default: {
402
- EXCEPTION_SET(UNSUPPORTED_STORED_VALUE_TYPE);
403
- return -1;
404
- }
225
+ if (storedValueType == FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_STRING) {
226
+ const int cmpResult = strncmp(
227
+ &value->stringValue.value,
228
+ target,
229
+ value->stringValue.size);
230
+ return cmpResult;
405
231
  }
232
+ EXCEPTION_CLEAR;
233
+ const uint8_t decimalPlaces = (
234
+ tempBuilder->length < MAX_DOUBLE_DECIMAL_PLACES
235
+ ? (uint8_t)tempBuilder->length
236
+ : MAX_DOUBLE_DECIMAL_PLACES);
237
+ StringBuilderAddStringValue(
238
+ tempBuilder,
239
+ value,
240
+ storedValueType,
241
+ decimalPlaces,
242
+ exception);
243
+ StringBuilderComplete(tempBuilder);
244
+ const int result = (EXCEPTION_OKAY
245
+ ? strcmp(tempBuilder->ptr, target)
246
+ : -1);
247
+ return result;
406
248
  }
407
249
 
408
-
409
250
  int fiftyoneDegreesStoredBinaryValueToIntOrDefault(
410
251
  const fiftyoneDegreesStoredBinaryValue * const value,
411
252
  const fiftyoneDegreesPropertyValueType storedValueType,
@@ -132,6 +132,7 @@ EXTERNAL fiftyoneDegreesStoredBinaryValue* fiftyoneDegreesStoredBinaryValueGet(
132
132
  * @param value the current binary value item
133
133
  * @param storedValueType format of byte array representation
134
134
  * @param target the target search value.
135
+ * @param tempBuilder temporary builder to stringify value into.
135
136
  * @return 0 if they are equal, otherwise negative
136
137
  * for smaller and positive for bigger
137
138
  */
@@ -139,6 +140,7 @@ EXTERNAL int fiftyoneDegreesStoredBinaryValueCompareWithString(
139
140
  const fiftyoneDegreesStoredBinaryValue *value,
140
141
  fiftyoneDegreesPropertyValueType storedValueType,
141
142
  const char *target,
143
+ fiftyoneDegreesStringBuilder *tempBuilder,
142
144
  fiftyoneDegreesException *exception);
143
145
 
144
146
  /**
@@ -220,12 +220,15 @@ fiftyoneDegreesStringBuilder* fiftyoneDegreesStringBuilderAddChars(
220
220
  fiftyoneDegreesStringBuilder* builder,
221
221
  const char * const value,
222
222
  size_t const length) {
223
- if (length < builder->remaining &&
224
- memcpy(builder->current, value, length) == builder->current) {
225
- builder->remaining -= length;
226
- builder->current += length;
223
+ const bool fitsIn = length < builder->remaining;
224
+ const size_t clippedLength = (
225
+ fitsIn ? length : (builder->remaining ? builder->remaining - 1 : 0));
226
+ if (0 < clippedLength &&
227
+ memcpy(builder->current, value, clippedLength) == builder->current) {
228
+ builder->remaining -= clippedLength;
229
+ builder->current += clippedLength;
227
230
  }
228
- else {
231
+ if (!fitsIn) {
229
232
  builder->full = true;
230
233
  }
231
234
  builder->added += length;
@@ -31,6 +31,7 @@ typedef struct value_search_t {
31
31
  Collection *strings;
32
32
  const char *valueName;
33
33
  PropertyValueType valueType;
34
+ StringBuilder *tempBuilder;
34
35
  } valueSearch;
35
36
 
36
37
  #ifdef _MSC_VER
@@ -44,6 +45,9 @@ static int compareValueByName(void *state, Item *item, long curIndex, Exception
44
45
  StoredBinaryValue *value;
45
46
  valueSearch *search = (valueSearch*)state;
46
47
  DataReset(&name.data);
48
+ if (search->tempBuilder) {
49
+ StringBuilderInit(search->tempBuilder);
50
+ }
47
51
  value = ValueGetContent(
48
52
  search->strings,
49
53
  (Value*)item->data.ptr,
@@ -55,6 +59,7 @@ static int compareValueByName(void *state, Item *item, long curIndex, Exception
55
59
  value,
56
60
  search->valueType,
57
61
  search->valueName,
62
+ search->tempBuilder,
58
63
  exception);
59
64
  COLLECTION_RELEASE(search->strings, &name);
60
65
  }
@@ -155,6 +160,13 @@ long fiftyoneDegreesValueGetIndexByNameAndType(
155
160
  search.valueName = valueName;
156
161
  search.strings = strings;
157
162
  search.valueType = storedValueType;
163
+
164
+ const bool isString = (storedValueType == FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_STRING);
165
+ const size_t requiredSize = strlen(valueName) + 3;
166
+ char * const buffer = isString ? NULL : Malloc(requiredSize);
167
+ StringBuilder tempBuilder = { buffer, requiredSize };
168
+ search.tempBuilder = isString ? NULL : &tempBuilder;
169
+
158
170
  index = CollectionBinarySearch(
159
171
  values,
160
172
  &item,
@@ -163,6 +175,9 @@ long fiftyoneDegreesValueGetIndexByNameAndType(
163
175
  (void*)&search,
164
176
  compareValueByName,
165
177
  exception);
178
+ if (buffer) {
179
+ Free(buffer);
180
+ }
166
181
  if (EXCEPTION_OKAY) {
167
182
  COLLECTION_RELEASE(values, &item);
168
183
  }
@@ -200,6 +215,13 @@ Value* fiftyoneDegreesValueGetByNameAndType(
200
215
  search.valueName = valueName;
201
216
  search.strings = strings;
202
217
  search.valueType = storedValueType;
218
+
219
+ const bool isString = (storedValueType == FIFTYONE_DEGREES_PROPERTY_VALUE_TYPE_STRING);
220
+ const size_t requiredSize = strlen(valueName) + 3;
221
+ char * const buffer = isString ? NULL : Malloc(requiredSize);
222
+ StringBuilder tempBuilder = { buffer, requiredSize };
223
+ search.tempBuilder = isString ? NULL : &tempBuilder;
224
+
203
225
  if (
204
226
  (int)property->firstValueIndex != -1 &&
205
227
  CollectionBinarySearch(
@@ -213,5 +235,8 @@ Value* fiftyoneDegreesValueGetByNameAndType(
213
235
  EXCEPTION_OKAY) {
214
236
  value = (Value*)item->data.ptr;
215
237
  }
238
+ if (buffer) {
239
+ Free(buffer);
240
+ }
216
241
  return value;
217
242
  }
@@ -227,10 +227,14 @@ static const NumReader *selectNumReader(const WkbtotReductionMode reductionMode)
227
227
  }
228
228
  }
229
229
 
230
+ typedef struct {
231
+ StringBuilder * const stringBuilder;
232
+ bool isSeparated;
233
+ } OutputState;
230
234
 
231
235
  typedef struct {
232
236
  const byte *binaryBuffer;
233
- StringBuilder * const stringBuilder;
237
+ OutputState output;
234
238
 
235
239
  CoordMode coordMode;
236
240
  ByteOrder wkbByteOrder;
@@ -264,24 +268,29 @@ static void writeEmpty(
264
268
  ProcessingContext * const context) {
265
269
 
266
270
  static const char empty[] = "EMPTY";
267
- StringBuilderAddChars(context->stringBuilder, empty, sizeof(empty));
271
+ if (!context->output.isSeparated) {
272
+ StringBuilderAddChar(context->output.stringBuilder, ' ');
273
+ }
274
+ StringBuilderAddChars(context->output.stringBuilder, empty, sizeof(empty) - 1);
275
+ context->output.isSeparated = false;
268
276
  }
269
277
 
270
278
  static void writeTaggedGeometryName(
271
- const ProcessingContext * const context,
279
+ ProcessingContext * const context,
272
280
  const char * const geometryName) {
273
281
 
274
282
  StringBuilderAddChars(
275
- context->stringBuilder,
283
+ context->output.stringBuilder,
276
284
  geometryName,
277
285
  strlen(geometryName));
278
286
  if (context->coordMode.tag) {
279
- StringBuilderAddChar(context->stringBuilder, ' ');
287
+ StringBuilderAddChar(context->output.stringBuilder, ' ');
280
288
  StringBuilderAddChars(
281
- context->stringBuilder,
289
+ context->output.stringBuilder,
282
290
  context->coordMode.tag,
283
291
  context->coordMode.tagLength);
284
292
  }
293
+ context->output.isSeparated = false;
285
294
  }
286
295
 
287
296
 
@@ -296,17 +305,20 @@ static void withParenthesesIterate(
296
305
 
297
306
  Exception * const exception = context->exception;
298
307
 
299
- StringBuilderAddChar(context->stringBuilder, '(');
308
+ StringBuilderAddChar(context->output.stringBuilder, '(');
309
+ context->output.isSeparated = true;
300
310
  for (uint32_t i = 0; i < count; i++) {
301
311
  if (i) {
302
- StringBuilderAddChar(context->stringBuilder, ',');
312
+ StringBuilderAddChar(context->output.stringBuilder, ',');
313
+ context->output.isSeparated = true;
303
314
  }
304
315
  visitor(context);
305
316
  if (EXCEPTION_FAILED) {
306
317
  return;
307
318
  }
308
319
  }
309
- StringBuilderAddChar(context->stringBuilder, ')');
320
+ StringBuilderAddChar(context->output.stringBuilder, ')');
321
+ context->output.isSeparated = true;
310
322
  }
311
323
 
312
324
  static void handlePointSegment(
@@ -314,10 +326,12 @@ static void handlePointSegment(
314
326
 
315
327
  for (CoordIndexType i = 0; i < context->coordMode.dimensionsCount; i++) {
316
328
  if (i) {
317
- StringBuilderAddChar(context->stringBuilder, ' ');
329
+ StringBuilderAddChar(context->output.stringBuilder, ' ');
330
+ context->output.isSeparated = true;
318
331
  }
319
332
  const double nextCoord = readDouble(context, i);
320
- StringBuilderAddDouble(context->stringBuilder, nextCoord, context->decimalPlaces);
333
+ StringBuilderAddDouble(context->output.stringBuilder, nextCoord, context->decimalPlaces);
334
+ context->output.isSeparated = false;
321
335
  }
322
336
  }
323
337
 
@@ -575,7 +589,10 @@ static void handleWKBRoot(
575
589
 
576
590
  ProcessingContext context = {
577
591
  binaryBuffer,
578
- stringBuilder,
592
+ {
593
+ stringBuilder,
594
+ true,
595
+ },
579
596
 
580
597
  CoordModes[0],
581
598
  ~*binaryBuffer,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fiftyone-devicedetection-onpremise
3
- Version: 4.5.0a36
3
+ Version: 4.5.0a38
4
4
  Summary: This project contains 51Degrees Device Detection OnPremise engine that can be used with the 51Degrees Pipeline API. The Pipeline is a generic web request intelligence and data processing solution with the ability to add a range of 51Degrees and/or custom plug ins (Engines)
5
5
  Author: 51Degrees Engineering
6
6
  Author-email: engineering@51degrees.com
@@ -0,0 +1 @@
1
+ 4.5.0-alpha.38
@@ -1 +0,0 @@
1
- 4.5.0-alpha.36