version	U12.1.00
uid	random.u1-1786032992-0
impl	error
link	factors.u
global	9
	0,000001,random,0
	1,000005,rand_num,3
	2,000005,rand_int,1
	3,000005,randomize,0
	4,000005,randrange,2
	5,000005,randrangeseq,2
	6,000005,randseq,1
	7,000005,rng,4
	8,000005,shuffle,1

proc rand_num
	local	0,001000,a_
	local	1,001000,c_
	local	2,001000,m_
	local	3,000040,random_last
	local	4,000040,a
	local	5,000040,c
	local	6,000040,m
	local	7,000000,random
	con	0,002000,1,0
	con	1,002000,10,1103515245
	con	2,002000,9,453816694
	con	3,002000,1,2
	con	4,002000,2,31
	declend
	filen	random.icn
	line	64
	colm	11
	synt	any
lab L1
	init	L3
	mark	L2
	mark	L4
	pnull
	pnull
	var	7
	line	68
	colm	7
	synt	any
	null
	int	0
	line	68
	colm	15
	synt	any
	asgn
	unmark
lab L4
	mark	L5
	pnull
	var	4
	mark	L6
	pnull
	var	0
	line	69
	colm	12
	synt	any
	nonnull
	line	69
	colm	16
	synt	any
	esusp
	goto	L7
lab L6
	int	1
lab L7
	line	69
	colm	9
	synt	any
	asgn
	unmark
lab L5
	mark	L8
	pnull
	var	5
	mark	L9
	pnull
	var	1
	line	70
	colm	12
	synt	any
	nonnull
	line	70
	colm	16
	synt	any
	esusp
	goto	L10
lab L9
	int	2
lab L10
	line	70
	colm	9
	synt	any
	asgn
	unmark
lab L8
	pnull
	var	6
	mark	L11
	pnull
	var	2
	line	71
	colm	13
	synt	any
	nonnull
	line	71
	colm	17
	synt	any
	esusp
	goto	L12
lab L11
	pnull
	int	3
	int	4
	line	71
	colm	21
	synt	any
	power
lab L12
	line	71
	colm	9
	synt	any
	asgn
	unmark
lab L2
	einit	L1
lab L3
	mark	L13
	mark	L14
	pnull
	var	7
	pnull
	pnull
	pnull
	var	4
	var	7
	line	74
	colm	25
	synt	any
	mult
	var	5
	line	74
	colm	34
	synt	any
	plus
	var	6
	line	74
	colm	39
	synt	any
	mod
	line	74
	colm	19
	synt	any
	asgn
	line	74
	colm	5
	synt	any
	pret
lab L14
	synt	any
	pfail
	unmark
lab L13
	pnull
	line	76
	colm	1
	synt	any
	pfail
	end
proc rand_int
	local	0,001000,i
	local	1,000040,scale
	local	2,000000,integer
	local	3,000000,runerr
	local	4,000000,rand_num
	con	0,004000,1.0
	con	1,002000,1,2
	con	2,002000,2,31
	con	3,002000,1,1
	con	4,002000,1,0
	con	5,002000,3,205
	declend
	line	78
	colm	11
	synt	any
lab L1
	init	L3
	mark	L2
	pnull
	var	1
	pnull
	real	0
	pnull
	pnull
	int	1
	int	2
	line	81
	colm	30
	synt	any
	power
	int	3
	line	81
	colm	35
	synt	any
	minus
	line	81
	colm	25
	synt	any
	div
	line	81
	colm	18
	synt	any
	asgn
	unmark
lab L2
	einit	L1
lab L3
	mark	L4
	mark	L5
	pnull
	var	0
	pnull
	int	4
	var	2
	var	0
	line	83
	colm	22
	synt	any
	invoke	1
	line	83
	colm	13
	synt	any
	numlt
	line	83
	colm	7
	synt	any
	asgn
	line	83
	colm	28
	synt	any
	esusp
	goto	L6
lab L5
	var	3
	int	5
	var	0
	line	83
	colm	36
	synt	any
	invoke	2
lab L6
	unmark
lab L4
	mark	L7
	mark	L8
	pnull
	var	2
	pnull
	pnull
	var	0
	var	4
	line	85
	colm	31
	synt	any
	invoke	0
	line	85
	colm	21
	synt	any
	mult
	var	1
	line	85
	colm	34
	synt	any
	mult
	line	85
	colm	18
	synt	any
	invoke	1
	int	3
	line	85
	colm	43
	synt	any
	plus
	line	85
	colm	4
	synt	any
	pret
lab L8
	synt	any
	pfail
	unmark
lab L7
	pnull
	line	87
	colm	1
	synt	any
	pfail
	end
proc randomize
	local	0,000040,ncalls
	local	1,000000,map
	con	0,002000,1,0
	con	1,002000,1,1
	con	2,010000,6,163,123,155,115,150,110
	con	3,010000,8,110,150,072,115,155,072,123,163
	con	4,010000,8,131,171,130,170,115,155,104,144
	con	5,010000,10,131,171,130,170,057,115,155,057,104,144
	con	6,002000,4,1009
	declend
	line	89
	colm	11
	synt	any
lab L1
	init	L3
	mark	L2
	pnull
	var	0
	int	0
	line	92
	colm	19
	synt	any
	asgn
	unmark
lab L2
	einit	L1
lab L3
	mark	L4
	pnull
	var	0
	dup
	int	1
	line	94
	colm	11
	synt	any
	plus
	asgn
	unmark
lab L4
	mark	L5
	pnull
	line	96
	colm	4
	synt	any
	keywd	random
	pnull
	pnull
	pnull
	var	1
	str	2
	str	3
	line	96
	colm	41
	synt	any
	keywd	clock
	line	96
	colm	18
	synt	any
	invoke	3
	var	1
	str	4
	str	5
	line	97
	colm	37
	synt	any
	keywd	date
	line	97
	colm	10
	synt	any
	invoke	3
	line	96
	colm	49
	synt	any
	plus
	line	97
	colm	46
	synt	any
	keywd	time
	line	97
	colm	44
	synt	any
	plus
	pnull
	int	6
	var	0
	line	97
	colm	59
	synt	any
	mult
	line	97
	colm	52
	synt	any
	plus
	line	96
	colm	12
	synt	any
	asgn
	unmark
lab L5
	mark	L6
	mark	L7
	pnull
	line	99
	colm	4
	synt	any
	pret
lab L7
	synt	any
	pfail
	unmark
lab L6
	pnull
	line	101
	colm	1
	synt	any
	pfail
	end
proc randrange
	local	0,001000,min
	local	1,001000,max
	con	0,002000,1,1
	declend
	line	103
	colm	11
	synt	any
	mark	L1
	mark	L2
	pnull
	pnull
	var	0
	int	0
	line	105
	colm	15
	synt	any
	minus
	pnull
	pnull
	pnull
	var	1
	var	0
	line	105
	colm	27
	synt	any
	minus
	int	0
	line	105
	colm	33
	synt	any
	plus
	line	105
	colm	21
	synt	any
	random
	line	105
	colm	19
	synt	any
	plus
	line	105
	colm	4
	synt	any
	pret
lab L2
	synt	any
	pfail
	unmark
lab L1
	pnull
	line	107
	colm	1
	synt	any
	pfail
	end
proc randrangeseq
	local	0,001000,i
	local	1,001000,j
	local	2,000020,x
	local	3,000020,m
	local	4,000020,a
	local	5,000020,c
	local	6,000020,n
	local	7,000000,nxtprime
	con	0,002000,1,1
	con	1,002000,1,0
	declend
	line	109
	colm	11
	synt	any
	mark	L1
	pnull
	var	6
	pnull
	pnull
	var	1
	var	0
	line	112
	colm	11
	synt	any
	minus
	int	0
	line	112
	colm	15
	synt	any
	plus
	line	112
	colm	6
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	line	114
	colm	4
	synt	if
	mark0
	pnull
	var	6
	int	1
	line	114
	colm	9
	synt	any
	numlt
	unmark
	line	114
	colm	18
	synt	any
	pfail
	line	114
	colm	4
	synt	endif
	unmark
lab L2
	mark	L3
	pnull
	var	2
	int	0
	line	116
	colm	6
	synt	any
	asgn
	unmark
lab L3
	mark	L4
	pnull
	var	3
	var	7
	var	6
	line	117
	colm	17
	synt	any
	invoke	1
	line	117
	colm	6
	synt	any
	asgn
	unmark
lab L4
	mark	L5
	pnull
	var	4
	pnull
	var	3
	int	0
	line	118
	colm	11
	synt	any
	plus
	line	118
	colm	6
	synt	any
	asgn
	unmark
lab L5
	mark	L6
	pnull
	var	5
	var	7
	var	3
	line	119
	colm	17
	synt	any
	invoke	1
	line	119
	colm	6
	synt	any
	asgn
	unmark
lab L6
	mark	L7
	line	121
	colm	4
	synt	every
	mark0
	pnull
	int	0
	var	3
	push1
	line	121
	colm	12
	synt	any
	toby
	pop
	mark0
	mark	L10
	pnull
	var	2
	pnull
	pnull
	pnull
	var	4
	var	2
	line	122
	colm	15
	synt	any
	mult
	var	5
	line	122
	colm	19
	synt	any
	plus
	var	3
	line	122
	colm	24
	synt	any
	mod
	line	122
	colm	9
	synt	any
	asgn
	unmark
lab L10
	line	123
	colm	7
	synt	if
	mark0
	pnull
	var	2
	var	6
	line	123
	colm	12
	synt	any
	numlt
	unmark
	line	124
	colm	10
	synt	suspend
	mark0
	pnull
	var	2
	var	0
	line	124
	colm	20
	synt	any
	plus
	line	124
	colm	10
	synt	any
	psusp
	pop
lab L11
	efail
lab L12
	line	124
	colm	10
	synt	endsuspend
	line	123
	colm	7
	synt	endif
	unmark
lab L8
	efail
lab L9
	line	121
	colm	4
	synt	endevery
	unmark
lab L7
	pnull
	line	128
	colm	1
	synt	any
	pfail
	end
proc randseq
	local	0,001000,seed
	con	0,002000,1,1
	declend
	line	130
	colm	11
	synt	any
	mark	L1
	line	132
	colm	4
	synt	suspend
	mark0
	pnull
	line	132
	colm	12
	synt	any
	keywd	random
	var	0
	line	132
	colm	20
	synt	any
	asgn
	line	132
	colm	4
	synt	any
	psusp
	pop
lab L2
	efail
lab L3
	line	132
	colm	4
	synt	endsuspend
	unmark
lab L1
	mark	L4
	line	133
	colm	4
	synt	suspend
	mark0
lab L7
	mark0
	pnull
	int	0
	line	133
	colm	13
	synt	any
	random
	chfail	L7
	esusp
	pop
	line	133
	colm	18
	synt	any
	keywd	random
	line	133
	colm	4
	synt	any
	psusp
	pop
lab L5
	efail
lab L6
	line	133
	colm	4
	synt	endsuspend
	unmark
lab L4
	pnull
	line	135
	colm	1
	synt	any
	pfail
	end
proc rng
	local	0,001000,a
	local	1,001000,c
	local	2,001000,m
	local	3,001000,x
	local	4,000000,iand
	con	0,002000,10,1103515245
	con	1,002000,9,453816694
	con	2,002000,1,2
	con	3,002000,2,31
	con	4,002000,1,1
	con	5,002000,1,0
	declend
	line	137
	colm	11
	synt	any
	mark	L1
	pnull
	pnull
	var	0
	line	139
	colm	4
	synt	any
	null
	int	0
	line	139
	colm	7
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	pnull
	pnull
	var	1
	line	140
	colm	4
	synt	any
	null
	int	1
	line	140
	colm	7
	synt	any
	asgn
	unmark
lab L2
	mark	L3
	pnull
	pnull
	var	2
	line	141
	colm	4
	synt	any
	null
	pnull
	pnull
	int	2
	int	3
	line	141
	colm	12
	synt	any
	power
	int	4
	line	141
	colm	17
	synt	any
	minus
	line	141
	colm	7
	synt	any
	asgn
	unmark
lab L3
	mark	L4
	pnull
	pnull
	var	3
	line	142
	colm	4
	synt	any
	null
	int	5
	line	142
	colm	7
	synt	any
	asgn
	unmark
lab L4
	mark	L5
	line	144
	colm	4
	synt	suspend
	mark0
	var	3
	line	144
	colm	4
	synt	any
	psusp
	pop
lab L6
	efail
lab L7
	line	144
	colm	4
	synt	endsuspend
	unmark
lab L5
	mark	L8
	line	145
	colm	4
	synt	suspend
	mark0
	pnull
	var	3
	var	4
	pnull
	pnull
	var	0
lab L11
	mark0
	var	3
	chfail	L11
	esusp
	line	145
	colm	24
	synt	any
	mult
	var	1
	line	145
	colm	29
	synt	any
	plus
	var	2
	line	145
	colm	21
	synt	any
	invoke	2
	line	145
	colm	14
	synt	any
	asgn
	line	145
	colm	4
	synt	any
	psusp
	pop
lab L9
	efail
lab L10
	line	145
	colm	4
	synt	endsuspend
	unmark
lab L8
	pnull
	line	147
	colm	1
	synt	any
	pfail
	end
proc shuffle
	local	0,001000,x
	local	1,000020,i
	local	2,000000,string
	con	0,002000,1,2
	con	1,002000,1,1
	declend
	line	154
	colm	11
	synt	any
	mark	L1
	pnull
	var	0
	var	2
	var	0
	line	157
	colm	15
	synt	any
	invoke	1
	line	157
	colm	6
	synt	any
	asgn
	unmark
lab L1
	mark	L2
	line	158
	colm	4
	synt	every
	mark0
	pnull
	var	1
	pnull
	pnull
	var	0
	line	158
	colm	15
	synt	any
	size
	int	0
	pnull
	int	1
	line	158
	colm	26
	synt	any
	neg
	line	158
	colm	18
	synt	any
	toby
	line	158
	colm	12
	synt	any
	asgn
	pop
	mark0
	pnull
	pnull
	var	0
	pnull
	var	1
	line	159
	colm	9
	synt	any
	random
	line	159
	colm	8
	synt	any
	subsc
	pnull
	var	0
	var	1
	line	159
	colm	18
	synt	any
	subsc
	line	159
	colm	13
	synt	any
	swap
	unmark
lab L3
	efail
lab L4
	line	158
	colm	4
	synt	endevery
	unmark
lab L2
	mark	L5
	mark	L6
	var	0
	line	160
	colm	4
	synt	any
	pret
lab L6
	synt	any
	pfail
	unmark
lab L5
	pnull
	line	161
	colm	1
	synt	any
	pfail
	end
