5/22/20 WHAT'S NEW IN THIS RELEASE? The inline prompt construct now allows substitution of a QM configuration parameter using <<CONFIG(name)>>. The extension introduced at QM 3.4-11 to the mc4 and mc5 terminfo capability definitions to allow selection of the slave printer hsa been reworked to remove the AccuTerm control codes from the terminal definition. This may require changes to user defined terminfo items. For improved compatibility with other multivalue systems, QM now supports the CALL conversion code to call a user supplied subroutine. The WEBSVC command has been extended to provide a way in which large message body texts can be passed as a file instead of an in-memory string. The QMBasic DTX() function can now handle values greater than 2^31. The QMBasic FCONTROL() function with action key FC$VALID.ID tests whether the qualifier is a valid record id for the specified file. The QMBasic JBUIILD() function has been extended to add an optional mode setting that causes data types that cannot be represented in JSON such as a file variable to be saved as a null item. Previously, a run time error would have occurred. The QMBasic REVREMOVE statement extracts elements of a dynamic array in reverse order. The QMBasic !CALLHTTP() class module now exposes the HTTP status code via the public HTTP.STATUS variable. The QMBasic !PSTAT() subroutine allows an application to request data for a specified QM process similar to that reported by the PSTAT command. A new configuration parameter, USPLIT, selects a user number allocation strategy in which interactive users are allocated the lowest available user number and all other process types are allocated the highest available user number. BUG FIXES IN THIS RELEASE An A-correlative did not accept the reuse qualifier, R, in lowercase. The CONFIGURE.FILE command could cause a fatal error if the reconfiguration required a new file to be built. Optimisation of a query command that used WITH @ID LIKE "xxx" could be mis-parsed. A bug in the QMBasic compiler meant that after turning on case sensitive variable names ($MODE CASE.SENSITIVE) the mode could not subsequently be re-enabled as might be needed to override a shortcut setting. There was the possibility of a fatal error when building a data collection. The QMBasic DECRYPT() function could return incorrect data. The probability of this occurring increased for longer strings. Public variables in a QMBasic class module compiled with the CASE.SENSITIVE compiler directive were not case insensitive.