<commit_before><script type="text/javascript">
    RED.nodes.registerType('qlab in',{
        category: 'input',
        color: '#7a6ea3',
        defaults: {
            port: {value:53002,
                   required:true,
                   validate: function(v) {return (Number(v) > 0) && (Number(v) < 65536);} },
            passcode: {value:"",
                       validate: function(v) { return (v.match(/^\d\d\d\d$/) || v === ""); } },
            name: {value:""}
        },
        inputs:0,
        outputs:1,
        icon: "qlab.png",
        label: function() {
            return this.name||"qlab in";
        }
    });
</script>
<script type="text/x-red" data-template-name="qlab in">
    <div class="form-row">
        <label for="node-input-port"><i class="fa fa-dot-circle-o"></i> Listen port:</label>
        <input type="text" id="node-input-port" style="width:80px;" placeholder="port">
		&nbsp; &nbsp; &nbsp; 
        <label for="node-input-passcode"><i class="fa fa-lock"></i> Passcode</label>
        <input type="text" id="node-input-passcode" style="width:110px;" placeholder="xxxx or blank">
    </div> 
    <div class="form-row">    
        <label for="node-input-name"><i class="icon-tag"></i> Name</label>
        <input type="text" id="node-input-name" placeholder="Name">
    </div>
</script>
<script type="text/x-red" data-help-name="qlab in">
    <p>Communicate with Qlab via OSC.</p>
</script>
<script type="text/javascript">
    RED.nodes.registerType('qlab out',{
        category: 'output',
        color: '#7a6ea3',
        defaults: {
            qlab: {value:"",
                  type:"qlab config"},
			passcode: {value:"",
				validate: function(v) { return (v.match(/^\d\d\d\d$/) || v === ""); }}, 
			workspaceId: { value:""},
            name: {value:""}
        },
        inputs:1,
        outputs:0,
        icon: "qlab.png",
        label: function() {
            return this.name||"qlab out";
        }
    });
</script>
<script type="text/x-red" data-template-name="qlab out">
    <div class="form-row">
        <label for="node-input-qlab"><i class="fa fa-flask"></i> Qlab</label>
        <input type="text" id="node-input-qlab" placeholder="">
    </div>
	<div class="form-row">
		<label for="node-input-passcode"><i class="fa fa-key"></i> Passcode</label>
        <input type="text" id="node-input-passcode" style="width:110px;" placeholder="xxxx or blank">
	</div>	
	<div class="form-row">
        <label for="node-input-workspaceId"><i class="fa fa-address-card"></i> Workspace ID: </label>
        <input type="text" id="node-input-workspaceId" placeholder="optional">
     </div>	
    <div class="form-row">
        <label for="node-input-name"><i class="icon-tag"></i> Name</label>
        <input type="text" id="node-input-name" placeholder="Name">
    </div>
</script>
<script type="text/x-red" data-help-name="qlab out">
    <p>Communicate with Qlab via OSC.</p>
</script>
<script type="text/javascript">
    RED.nodes.registerType('qlab query',{
        category: 'function',
        color: '#7a6ea3',
        defaults: {
            qlab: {value:"",
                  type:"qlab config"},
			passcode: {value:"",
		       validate: function(v) { return (v.match(/^\d\d\d\d$/) || v === ""); }}, 
			workspaceId: { value:""},
            name: {value:""}
        },
        inputs:1,
        outputs:1,
        icon: "qlab.png",
        label: function() {
            return this.name||"qlab query";
        }
    });
</script>
<script type="text/x-red" data-template-name="qlab query">
    <div class="form-row">
        <label for="node-input-qlab"><i class="fa fa-flask"></i> Qlab</label>
        <input type="text" id="node-input-qlab" placeholder="">
    </div>
	<div class="form-row">
		<label for="node-input-passcode"><i class="fa fa-key"></i> Passcode</label>
        <input type="text" id="node-input-passcode" style="width:110px;" placeholder="xxxx or blank">
	</div>
	<div class="form-row">
        <label for="node-input-workspaceId"><i class="fa fa-address-card"></i> Workspace ID: </label>
        <input type="text" id="node-input-workspaceId" placeholder="optional">
     </div>	
    <div class="form-row">
        <label for="node-input-name"><i class="icon-tag"></i> Name</label>
        <input type="text" id="node-input-name" placeholder="Name">
    </div>		
</script>
<script type="text/x-red" data-help-name="qlab query">
    <p>Communicate with Qlab via OSC.</p>
</script>
<script type="text/javascript">
     RED.nodes.registerType('qlab config',{
         category: 'config',
         color: '#7a6ea3',
         defaults: {
            ipAddress: {value:"localhost",
                        required:true,
                        validate: function(v) { return (v.match(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/)
						       || v == "localhost"); } },
            protocol: {value:"tcp",<commit_msg>Forgot to copy this over earlier<commit_after><script type="text/javascript">
    RED.nodes.registerType('qlab in',{
        category: 'input',
        color: '#7a6ea3',
        defaults: {
            port: {value:53002,
                   required:true,
                   validate: function(v) {return (Number(v) > 0) && (Number(v) < 65536);} },
            passcode: {value:"",
                       validate: function(v) { return (v.match(/^\d\d\d\d$/) || v === ""); } },
            name: {value:""}
        },
        inputs:0,
        outputs:1,
        icon: "qlab.png",
        label: function() {
            return this.name||"qlab in";
        }
    });
</script>
<script type="text/x-red" data-template-name="qlab in">
    <div class="form-row">
        <label for="node-input-port"><i class="fa fa-dot-circle-o"></i> Listen port:</label>
        <input type="text" id="node-input-port" style="width:80px;" placeholder="port">
		&nbsp; &nbsp; &nbsp; 
        <label for="node-input-passcode"><i class="fa fa-lock"></i> Passcode</label>
        <input type="text" id="node-input-passcode" style="width:110px;" placeholder="xxxx or blank">
    </div> 
    <div class="form-row">    
        <label for="node-input-name"><i class="icon-tag"></i> Name</label>
        <input type="text" id="node-input-name" placeholder="Name">
    </div>
</script>
<script type="text/x-red" data-help-name="qlab in">
    <p>Communicate with Qlab via OSC.</p>
</script>
<script type="text/javascript">
    RED.nodes.registerType('qlab out',{
        category: 'output',
        color: '#7a6ea3',
        defaults: {
            qlab: {value:"",
                  type:"qlab config"},
			passcode: {value:"",
				validate: function(v) { return (v.match(/^\d\d\d\d$/) || v === ""); }}, 
			workspaceId: { value:""},
			command: {value:""},
            name: {value:""}
        },
        inputs:1,
        outputs:0,
        icon: "qlab.png",
        label: function() {
            return this.name||"qlab out";
        }
    });
</script>
<script type="text/x-red" data-template-name="qlab out">
    <div class="form-row">
        <label for="node-input-qlab"><i class="fa fa-flask"></i> Qlab</label>
        <input type="text" id="node-input-qlab" placeholder="">
    </div>
	<div class="form-row">
		<label for="node-input-passcode"><i class="fa fa-key"></i> Passcode</label>
        <input type="text" id="node-input-passcode" style="width:110px;" placeholder="xxxx or blank">
	</div>	
	<div class="form-row">
        <label for="node-input-workspaceId"><i class="fa fa-address-card"></i> Workspace ID: </label>
        <input type="text" id="node-input-workspaceId" placeholder="optional">
     </div>	
	<div class="form-row">
        <label for="node-input-command"><i class="fa fa-terminal"></i> Command: </label>
        <input type="text" id="node-input-command" placeholder="/an/OSC/path with some arguments">
     </div>	
    <div class="form-row">
        <label for="node-input-name"><i class="icon-tag"></i> Name</label>
        <input type="text" id="node-input-name" placeholder="Name">
    </div>
</script>
<script type="text/x-red" data-help-name="qlab out">
    <p>Communicate with Qlab via OSC.</p>
</script>
<script type="text/javascript">
    RED.nodes.registerType('qlab query',{
        category: 'function',
        color: '#7a6ea3',
        defaults: {
            qlab: {value:"",
                  type:"qlab config"},
			passcode: {value:"",
		       validate: function(v) { return (v.match(/^\d\d\d\d$/) || v === ""); }}, 
			workspaceId: { value:""},
			command: {value:""},
            name: {value:""}
        },
        inputs:1,
        outputs:1,
        icon: "qlab.png",
        label: function() {
            return this.name||"qlab query";
        }
    });
</script>
<script type="text/x-red" data-template-name="qlab query">
    <div class="form-row">
        <label for="node-input-qlab"><i class="fa fa-flask"></i> Qlab</label>
        <input type="text" id="node-input-qlab" placeholder="">
    </div>
	<div class="form-row">
		<label for="node-input-passcode"><i class="fa fa-key"></i> Passcode</label>
        <input type="text" id="node-input-passcode" style="width:110px;" placeholder="xxxx or blank">
	</div>
	<div class="form-row">
        <label for="node-input-workspaceId"><i class="fa fa-address-card"></i> Workspace ID: </label>
        <input type="text" id="node-input-workspaceId" placeholder="optional">
     </div>	
	<div class="form-row">
        <label for="node-input-command"><i class="fa fa-terminal"></i> Command: </label>
        <input type="text" id="node-input-command" placeholder="/an/OSC/path with some arguments">
     </div>		 
    <div class="form-row">
        <label for="node-input-name"><i class="icon-tag"></i> Name</label>
        <input type="text" id="node-input-name" placeholder="Name">
    </div>		
</script>
<script type="text/x-red" data-help-name="qlab query">
    <p>Communicate with Qlab via OSC.</p>
</script>
<script type="text/javascript">
     RED.nodes.registerType('qlab config',{
         category: 'config',
         color: '#7a6ea3',
         defaults: {
            ipAddress: {value:"localhost",
                        required:true,
                        validate: function(v) { return (v.match(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/)
						       || v == "localhost"); } },
            protocol: {value:"tcp",
{'fraction_non_alphanumeric': 0.2151047095612622, 'fraction_numerical': 0.01895195678953852, 'mean_word_length': 2.5679513184584177, 'pattern_counts': {'":': 0, '<': 219, '<?xml version=': 0, '>': 219, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1582441', 'n_tokens_mistral': 3766, 'n_tokens_neox': 3614, 'n_words': 670}